虽然现在博客园上关于设计模式的文章已经有很多,但还是写一篇来凑下热闹,也算是对自己多这几种模式得使用总结。
Factory Pattern 工厂模式和 Builder Patter 建造者模式都是通过定义接口来将类的定义和实现区分开来。下面一步一步来做说明
1. Simple Factory 简单工厂
简单工厂只是将类简单抽象化,以Pizza为例,我们定义好Pizza的接口,实现继承Pizza的类PizzaA和PizzaB,然后简单工厂提供方法根据传进来的参数类型确定像调用者返回PizzaA或者PizzaB的实例
public interface Pizza
{
void DoPizza();
}
public class PizzaA : Pizza
{
public void DoPizza()
{
Console.WriteLine("pizza A");
}
}
public class PizzaB : Pizza
{
public void DoPizza()
{
Console.WriteLine("pizza B");
}
}
public static class SimplePizzaFacotry
{
public static Pizza Create(string type)
{
if (type == "PizzaA")
return new PizzaA();
else
return new PizzaB();
}
}
// Usage
public class SimplePizzaFacotryOrder
{
public void OrderPizza()
{
Pizza pizza = SimplePizzaFacotry.Create("PizzaA");
pizza.DoPizza();
}
}
{
void DoPizza();
}
public class PizzaA : Pizza
{
public void DoPizza()
{
Console.WriteLine("pizza A");
}
}
public class PizzaB : Pizza
{
public void DoPizza()
{
Console.WriteLine("pizza B");
}
}
public static class SimplePizzaFacotry
{
public static Pizza Create(string type)
{
if (type == "PizzaA")
return new PizzaA();
else
return new PizzaB();
}
}
// Usage
public class SimplePizzaFacotryOrder
{
public void OrderPizza()
{
Pizza pizza = SimplePizzaFacotry.Create("PizzaA");
pizza.DoPizza();
}
}