设计模式<二>-抽象工厂
2016-09-13 12:10
453 查看
抽象工厂:将一些对象抽象出公共方法接口,也就是通常说的接口类和抽象类,具体对象类基础抽象类实现具体逻辑
优点:搞内聚,低耦合,结构清晰,代码复用性强。
使用:通常用于多个不同角色,背包道具等
//定义动物接口 interface IAnimal { void Walk(); void Sex(); } //动物抽象类 abstract class AbstractDog { public void Walk() { Console.WriteLine("狗走路"); } } //具体对象 class Maledog : AbstractDog,IAnimal { public void Sex() { Console.WriteLine("性别男"); } } //具体对象 class FeMaledog : AbstractDog, IAnimal { public void Sex() { Console.WriteLine("性别女"); } } //工厂接口类 interface IAnimalFactory { IAnimal CreateMaleDog(); IAnimal CreateFeMaledog(); } //工厂抽象类 abstract class AbastractAnimalFactory { protected T CreateAnimal<T>() where T :IAnimal, new() { T animal = new T(); return animal; } } //工厂实例 class MaleHumanFactory : AbastractAnimalFactory, IAnimalFactory { public IAnimal CreateFeMaledog() { return CreateAnimal<FeMaledog>(); } public IAnimal CreateMaleDog() { return CreateAnimal<Maledog>(); } } //调用 class Program { static void Main(string[] args) { MaleHumanFactory factory = new MaleHumanFactory(); IAnimal animal = factory.CreateFeMaledog(); animal.Sex(); Console.Read(); } }
优点:搞内聚,低耦合,结构清晰,代码复用性强。
使用:通常用于多个不同角色,背包道具等
相关文章推荐
- 设计模式总结笔记<二> 工厂模式
- Treeylee的抽象工厂设计模式<收藏>
- <C/C++ 版> 设计模式 学习之 工厂模式 <1>
- <Head First 设计模式>:工厂模式1:方法模式--Pizza
- <C/C++ 版> 设计模式 学习之 工厂模式 <2>
- 设计模式六大原则<二>依赖倒置原则
- 【23种设计模式】创建型模式 > 三个工厂模式(简单工厂、抽象工厂、工厂方法)
- Java/Android设计模式<二>观察者模式
- <C/C++ 版> 设计模式 学习之 策略模式+工厂模式
- <设计模式>(3)工厂模式
- AbstractFactory抽象工厂设计模式
- Delphi 设计模式:《HeadFirst设计模式》Delphi代码---工厂模式之抽象工厂
- 我的<<Head First 设计模式>>读后感整理
- 程序员的偷懒 -- 设计模式之抽象工厂
- 设计模式:简单工厂、工厂方法、抽象工厂之小结与区别
- 设计模式--抽象工厂
- 抽象工厂设计模式
- AbstractFactory抽象工厂设计模式
- 设计模式之抽象工厂
- 请用代码简单描述一下Singleton、抽象工厂、Bridge、Composite(任选三个)的设计模式的概念