简单工厂模式实例

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();
        }

 

posted @ 2018-01-08 21:17  字里行间  阅读(235)  评论(0编辑  收藏  举报