.net设计模式-抽象工厂
Posted spinoza
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了.net设计模式-抽象工厂相关的知识,希望对你有一定的参考价值。
抽象工厂属于创建型设计模式,
抽象工厂能够生产一系列相对固定的产品簇产品,要扩展一个工厂相对容易,如果要扩展一个产品簇中的产品数量,就要全部的工厂都要扩展,就相对麻烦
抽象工厂:工厂+约束
/// 创建产品簇,多个对象是个整体,不可分割
抽象的工厂类
1 /// <summary> 2 /// 一个工厂负责一些产品的创建 3 /// 产品簇 4 /// 单一职责就是创建完整的产品簇 5 /// 6 /// 继承抽象类后,必须显式的override父类的抽象方法 7 /// </summary> 8 public abstract class FactoryAbstract 9 10 public abstract IRace CreateRace(); 11 public abstract IArmy CreateArmy(); 12 public abstract IHero CreateHero(); 13 public abstract IResource CreateResource(); 14 15 //public abstract ILuck CreateLuck(); 16
各实现类
1 /// <summary> 2 /// 一个工厂负责一些产品的创建 3 /// </summary> 4 public class HumanFactory : FactoryAbstract 5 6 public override IRace CreateRace() 7 8 return new Human(); 9 10 11 public override IArmy CreateArmy() 12 13 return new HumanArmy(); 14 15 public override IHero CreateHero() 16 17 return new HumanHero(); 18 19 public override IResource CreateResource() 20 21 return new HumanResource(); 22 23
1 /// <summary> 2 /// 一个工厂负责一些产品的创建 3 /// </summary> 4 public class ORCFactory : FactoryAbstract 5 6 public override IRace CreateRace() 7 8 return new ORC(); 9 10 11 public override IArmy CreateArmy() 12 13 return new ORCArmy(); 14 15 public override IHero CreateHero() 16 17 return new ORCHero(); 18 19 public override IResource CreateResource() 20 21 return new ORCResource(); 22 23
以上是关于.net设计模式-抽象工厂的主要内容,如果未能解决你的问题,请参考以下文章