Design patterns – Factory (Fábrica)
Antes de começarmos, segue algumas pergunta/respostas:
- O que é padrão de projeto?
R: http://pt.wikipedia.org/wiki/Padr%C3%A3o_de_projeto_de_software - O que é Factory pattern (fábrica)?
- Explicação sobre o padrão Factory:R: http://en.wikipedia.org/wiki/Factory_method_pattern
R: http://en.wikipedia.org/wiki/State_pattern - Qual sua categoria?R: Criacional
- Sua estrutura padrão:

- Explicação sobre o padrão Factory:R: http://en.wikipedia.org/wiki/Factory_method_pattern
Bom, explicações dadas, agora vamos começar a brincar com nossopadrão. O exemplo usado foi de uma fábrica celular.
Com base na estrutura básica do padrão fábrica, criei as seguintes classes:
//Produto
abstract class Celular
{
protected string numero;
public Celular(string numero) { this.numero = numero; }
public abstract void Ligar(string numero);
}
//Produto concreto.
class IPhone : Celular
{
public Hashtable Agenda = new Hashtable();
public IPhone(string numero) : base(numero) { }
public override void Ligar(string numero)
{
Console.WriteLine(“({0} ligando para {1}.”,this.numero,numero);
Agenda[numero] = ( Agenda[numero] == null)? 0 : Convert.ToInt32( Agenda[numero])+1;
}
}
class Nokia : Celular
{
public Nokia(string numero) : base(numero) { }
public override void Ligar(string numero)
{
Console.WriteLine(“({0} ligando >>> {1}…”, this.numero, numero);
}
}
//Criador
abstract class Factory
{
private Celular celular;
public abstract void Criar( string numero);
public Celular Celular
{
get { return celular; }
set { celular = value; }
}
}
//Fábrica
class IPhoneFactory : Factory
{
public override void Criar(string numero)
{
this.Celular = new IPhone(numero);
}
}
class NokiaFactory : Factory
{
public override void Criar( string numero)
{
this.Celular = new Nokia(numero);
}
}
O Diagrama dessa implementação ficará assim:

Sua chamada ficará assim:

opa blz ae mano me add no msn ae neo_matheus@hotmail.com
que fala com oce
já esta added!
Busco um programador para confeccionar um sistema WEB integrado com meios de pagamentos e telefonia voz sobre IP.
Em anexo envio o que pretendo . Por gentileza, analise, verifique se esta em sua competencia tecnica a construção do mesmo e se, positivo, me envie uma proposta orçamentária. Estarei a sua disposição para sanar eventuais duvidas.
att
Nelson Bruce
11-8109-8241
i.d 55*126*28071