工厂模式

来源:互联网 发布:hd电视直播软件 编辑:程序博客网 时间:2024/06/17 15:07

结构

  1. Factory(抽象工厂角色) :声明了工厂方法,用于返回一个产品,是工厂方法的核心

  2. ConcreteFactory(具体工厂) : 抽象工厂的子类,返回具体产品的实例

  3. Product(抽象产品角色):所有产品对象的父类,定义了公共方法

  4. ConcreteProduct(具体产品角色):具体产品与具体工厂一一对应

逻辑结构

abstract class Product    {        //所有产品类的公共方法        public void MethodSame()        {            //公共方法        }        //所有产品各自的方法        public abstract void MethodDiff();    }    class ConcreteProductA : Product    {        public override void MethodDiff ()        {            //自己的方法        }    }    class ConcreteProductB : Product    {        public override void MethodDiff ()        {            //自己的方法        }    }    //抽象工厂,可以是接口,抽象类,具体类    interface Factory    {        Product FactoryMethod();    }    //不同的具体工厂对应不同的具体产品    class ConcreteFactoryA : Factory    {        public Product FactoryMethod()        {            return new ConcreteProductA ();        }    }    //不同的具体工厂对应不同的具体产品    class ConcreteFactoryB : Factory    {        public Product FactoryMethod()        {            return new ConcreteProductB ();        }    }


优点:
需要增加新的具体产品时,只需要增加对应的具体工厂,不需要修改已有的代码

1 0
原创粉丝点击