problem Without Factory :
- A lot new Keyword, need to add a lot code in future.
- Client know all the invoice type.
public interface IInvoice
{
void print();
}
public class InvoiceWithoutHeader : IInvoice
{
public void print()
{
Console.WriteLine("Invoice Without Header");
}
}
public class InvoiceWithHeader : IInvoice
{
public void print()
{
Console.WriteLine("Invoice With Header");
}
}
public class FactoryInvoice
{
public static IInvoice GetInvoice(int
invoiceType)
{
IInvoice result = null;
switch (invoiceType)
{
case 1:
result = new InvoiceWithHeader();
break;
case 2:
result = new InvoiceWithoutHeader();
break;
default:
break;
}
return result;
}
}
static void Main(string[] args)
{
IInvoice invoice;
invoice = FactoryInvoice.GetInvoice(1);
invoice.print();
IInvoice invoice2;
invoice2 = FactoryInvoice.GetInvoice(2);
invoice2.print();
Console.ReadLine();
}
No comments:
Post a Comment