Buscar

USO DO DESIGN PATTERN STRATEGY

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

...epos\strategyLCL153797\strategyLCL153797\Program.cs 1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
//uma classe deve suportar média aritmética e considerar como aprovados
//os casos nos quais a média for superior a 5,0.
// a outra deve usar média geométrica e considerar como aprovados os
//casos em que a média for superior a 7,0.
//Laís Costa de Lima - RA 153497
public class Program
{
private static void Main(string[] )
{
Aritmetica calculo = new Aritmetica();
//Geometrica calculo = new Geometrica();
Disciplina d = new Disciplina(calculo);
d.Nome = "Padroes de Desenvolvimento";
d.P1 = 10; d.P2 = 5;
d.CalcularMedia();
Console.WriteLine("Media = {0} , Situacao = {1}", d.Media,
d.Situacao);
Console.ReadKey();
}
}
public class Disciplina
{
public IcalcMedia calcMedia { get; set; }
public double Media { get; set; }
public string Nome { get; set; }
public double P1 { get; set; }
public double P2 { get; set; }
public string Situacao { get; set; }
public Disciplina(IcalcMedia calcMedia)
{
this.calcMedia = calcMedia;
}
public void CalcularMedia()
{
Media = calcMedia.CalculaMedia(P1, P2);
Situacao = calcMedia.Situacao(Media);
}
}
public interface IcalcMedia
{
public double CalculaMedia(double a, double b);
public string Situacao(double media);
}
public class Aritmetica : IcalcMedia
{
public double CalculaMedia(double a, double b)
{
return a + b * 2 / 3 ;
}
public string Situacao(double media)
...epos\strategyLCL153797\strategyLCL153797\Program.cs 2
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
{
return media > 5 ? "Aprovado" : "Reprovado";
}
}
public class Geometrica : IcalcMedia
{
public double CalculaMedia(double a, double b)
{
return Math.Sqrt(a * b);
}
public string Situacao(double media)
{
return media > 7 ? "Aprovado" : "Reprovado";
}
}

Outros materiais