C# 设计模式-工厂方法(Factory Method)
2017-12-24 20:47
851 查看
以下是个人观点:
用不同具体工厂创建不同的具体对象,代码仅处理具体对象的父类(或接口)
声明工厂方法的抽象父类(类似于抽象工厂)、具体工厂、具体对象的父类、具体对象
抽象工厂和工厂方法的区别:
抽象工厂使用工厂方法创建一系列的对象
工厂方法通常只创建一个对象
调用:
结果:
参考资料:《设计模式-可复用面对对象软件的基础》
用不同具体工厂创建不同的具体对象,代码仅处理具体对象的父类(或接口)
声明工厂方法的抽象父类(类似于抽象工厂)、具体工厂、具体对象的父类、具体对象
抽象工厂和工厂方法的区别:
抽象工厂使用工厂方法创建一系列的对象
工厂方法通常只创建一个对象
using System; namespace FactoryMethod { /// <summary> /// 声明工厂方法的抽象父类(类似于抽象工厂) /// </summary> abstract class Creator { public abstract Word CreateWord(); } /// <summary> /// 创建A单词对象的工厂A /// </summary> class AFactory : Creator { public override Word CreateWord() { //创建A单词对象 return new AWord(); } } /// <summary> /// 创建BWord对象的工厂B /// </summary> class BFactory : Creator { public override Word CreateWord() { //创建B单词对象 return new BWord(); } } /// <summary> /// 抽象单词类 /// </summary> abstract class Word { public abstract void Write(); } /// <summary> /// A单词具体类 /// </summary> class AWord : Word { public override void Write() { Console.WriteLine("我是AWord对象"); } } /// <summary> /// B单词具体类 /// </summary> class BWord:Word { public override void Write() { Console.WriteLine("我是BWord对象"); } } }
调用:
namespace FactoryMethod { class Program { static void Main(string[] args) { Word word; Creator AFactory = new AFactory(); //创建A单词对象 word = AFactory.CreateWord(); word.Write(); Creator BFactory = new BFactory(); //创建B单词对象 word = BFactory.CreateWord(); word.Write(); } } }
结果:
参考资料:《设计模式-可复用面对对象软件的基础》
相关文章推荐
- c#设计模式- Factory Method模式(工厂方法)
- C#面向对象设计模式纵横谈(四) --- Factory Method 工厂方法(创建型模式)
- [设计模式学习笔记二][创建型模式][工厂方法(Factory Method)]
- C#设计模式之工厂模式(Factory)--02 工厂方法模式(Factory Method)
- C++设计模式之三:Factory Method(工厂方法)
- 设计模式(八)[工厂方法(Factory Method)模式]
- 【设计模式】工厂方法(FactoryMethod)模式
- 设计模式之工厂方法模式---factory method
- 【设计模式基础】创建型模式 - 4 - 工厂方法(Factory Method)
- 设计模式杂谈:创建型模式之工厂方法(Factory Method)
- 3.23种设计模式的Java版--Factory Method(工厂方法)
- 设计模式 工厂方法(Factory Method Pattern)
- [设计模式-创建型]工厂方法(Factory Method)
- c++ 设计模式8 (Factory Method 工厂方法)
- ios设计模式读书笔记----Factory Method(工厂方法)
- 23设计模式之工厂方法(FactoryMethod)
- Java设计模式圣经连载(02)-工厂方法(Factory Method)模式
- 设计模式四:Factory method工厂方法——对象创建型模式
- iOS 设计模式之简单工厂方法模式(SimpleFactoryMethod)
- [设计模式-创建型]工厂方法(Factory Method)