简单工厂模式实例
1.最近在学习设计模式,学习最简单的简单工厂设计模式。
1.1 工厂模式用到了单一职责原则和开闭原则
1.2 单一原则:一个类只负责一个功能领域中的相应职责,或者可以定义为:就一个类而言,应该只有一个引起它变化的原因。
1.3 开闭原则:一个软件实体应当对扩展开放,对修改关闭。即软件实体应尽量在不修改原有代码的情况下进行扩展。(注:抽象化是开闭原则的关键)
2.工厂模式核心就是抽象
其他的不说了,直接上代码
3.先建一个抽象类和一个抽象方法
public abstract class AbstractChart { //virtual 虚方法必须实现方法体 public abstract void Display(); }
4.建一个饼状图的类,继承抽象类,用override重写抽象类里面的方法,实现多态
public class PieChart:AbstractChart { public override void Display() { Console.WriteLine("这是一个饼状图!"); } }
5.建一个柱状图的类,继承抽象类,用override重写抽象类里面的方法,实现多态
public class BarChart:AbstractChart { //子类继承抽象类用override重写抽象类的方法(父类方法必须是抽象方法或者虚方法) public override void Display() { Console.WriteLine("这是一个柱状图!"); } }
6.创建一个工厂类,根据条件创建出对应的对象,调用方法
public class SimpleFactory { AbstractChart chart; public AbstractChart CreateFactory(string oper) { switch (oper) { case "bar": chart = new BarChart(); break; case "pie": chart = new PieChart(); break; } return chart; } }
7.根据工厂创建出对象,根据传递的信息,得到相对应的值
static void Main(string[] args) { //工厂模式用到了单一职责原则和开闭原则 //单一原则:一个类只负责一个功能领域中的相应职责,或者可以定义为:就一个类而言,应该只有一个引起它变化的原因。 //开闭原则:一个软件实体应当对扩展开放,对修改关闭。即软件实体应尽量在不修改原有代码的情况下进行扩展。(注:抽象化是开闭原则的关键) SimpleFactory simpleFactory = new SimpleFactory(); AbstractChart chart = simpleFactory.CreateFactory("bar"); chart.Display(); }
将来的你,一定会感谢现在努力的自己!