简单工厂 工厂模式 抽象工厂 之c#
2011-07-29 10:13
429 查看
前面介绍了策略和单例模式,这篇文章说一下简单工厂,工厂,抽象工厂的概念和应该场景
首先,从简单工厂开始:
AbstractFactory
应用场景:封装变化点。创建一系列相互依赖的对象。
好了,到这里就把简单工厂,工厂,抽象工厂都介绍完了,抽象工厂的问题是如果有创建对象变化的时候,还是要变化代码,重新生成,后面会介绍用反射解决这个问题
首先,从简单工厂开始:
AbstractFactory
/*其实工厂和抽象工厂没有多大区别,只不过是抽象工厂生产的商品是多个而已 通俗的说,就是抽象工厂模式的具体工厂里面会有多个实例具体对象的方法 更直观的就是,抽象工厂模式每个工厂一次造多个玩意,而工厂模式的每个工厂只造一个玩意*/ public abstract class Product { public abstract void work(); } public class ProductA : Product { public override void work() { Console.Write("ProductA"); } } public class ProductB : Product { public override void work() { Console.Write("ProductB"); } } public abstract class Car { public abstract void Build(); } public class CarA : Car { public override void Build() { Console.Write("Build CarA"); } } public class CarB : Car { public override void Build() { Console.Write("Build CarB"); } } public abstract class AbstractFactory { //工厂生产多个对象 public abstract Product newproduct(); public abstract Car newCar(); } public class AbstractFactoryA : AbstractFactory { public override Product newproduct() { return new ProductA();//子类里面实现具体的实例化 } public override Car newCar() { return new CarA(); } } public class AbstractFactoryB : AbstractFactory { public override Product newproduct() { return new ProductB();//子类里面实现具体的实例化 } public override Car newCar() { return new CarB(); } } public class AbstractFactoryClient { public static void GetFactoryMethod() { AbstractFactory factorysubA = new AbstractFactoryA(); AbstractFactory factorysubB = new AbstractFactoryA(); Product pruductA = factorysubA.newproduct(); Product pruductB = factorysubB.newproduct(); Car factorycarA = factorysubA.newCar(); factorycarA.Build(); pruductA.work(); pruductB.work(); } }
应用场景:封装变化点。创建一系列相互依赖的对象。
好了,到这里就把简单工厂,工厂,抽象工厂都介绍完了,抽象工厂的问题是如果有创建对象变化的时候,还是要变化代码,重新生成,后面会介绍用反射解决这个问题
相关文章推荐
- 简单工厂 工厂模式 抽象工厂---C#
- C#设计模式之简单工厂篇
- 商场促销-策略模式(和简单工厂模式很像的哇) C#
- C#中的简单工厂设计模式示例
- 设计模式学习之简单工厂、工厂方法、抽象工厂
- C++设计模式新解三 简单工厂 工厂模式 抽象工厂
- 【23种设计模式】创建型模式 > 三个工厂模式(简单工厂、抽象工厂、工厂方法)
- C#设计模式学习笔记---简单工厂模式
- 抽象工厂设计模式(Abstract Factory Design Pattern)简单随笔
- 设计模式:简单工厂、工厂方法、抽象工厂之小结与区别
- 简单的工厂模式+一个抽象接口
- 设计模式——创建型设计模式总结(简单工厂、普通工厂、抽象工厂、建造者、原型和单例)
- c#设计模式- Simple Factory模式(简单工厂)
- C#设计模式之简单工厂
- java设计模式之工厂设计模式(简单工厂设计模式、工厂设计模式、抽象设计模式)
- 茂哥设计模式:简单工厂,工厂方法,抽象工厂
- C#简单工厂设计模式
- 三兄弟模式 —简单工厂&工厂方法&抽象工厂
- C#抽象工厂简单实现类
- 设计模式C#实现(九)——工厂方法模式和简单工厂