2.简单工厂

来源:互联网 发布:个人数据交易平台 编辑:程序博客网 时间:2024/06/06 22:04

使用环境

某个对象具有类似的功能,比方说饭馆、汽车厂等等

简单例子

//基类 线条class Line{    public string Name    {        get;        set;    }} //带箭头的线条 class ArrowLine:Line    {        public ArrowLine()        {            this.Name = "Arrow";        }    }//带标签的线条 class LabelLine:Line{    public LabelLine()    {        this.Name = "Label";    }}//生成线条工厂 class LineFactory{   public static Line CreateLie(string name)    {        Line line=null;        switch (name)        {             case "Arrow":                line= new ArrowLine();                break;            case "Label":                line=new LabelLine();                break;        }        return line;    }}//调用方式 static void Main(string[] args)    {       //只需要传递线条类型,由工厂决定如何生产       var line= LineFactory.CreateLie("Arrow");       Console.WriteLine(line.Name);       Console.ReadKey();    }

每次增加新一类操作都需要在工程中提供方法。

要点

switch 和if-else的优雅一点的实现方式。当然如果不介意大量使用switch和if-else可以不用设计模式。