1 namespace UnitTestProject1.BaseDesign 2 { 3 4 /// <summary> 5 /// 工厂方法模式要求:尽量使用抽象类或接口来定义就可以达到一个开闭原则 6 /// </summary> 7 [TestClass] 8 public class BaseDesign 9 {10 [TestMethod]11 public voID TestMethod1()12 {13 GetAnimalEat(new DogFactoryFactory());14 15 GetAnimalEat(new PigFactoryFactory());16 17 //如果再增加一个AnimalEat不会对现有代码有改动18 }19 20 voID GetAnimalEat(AnimalFactory fa)21 {22 Animal am = fa.GetAnimal();23 am.Eat();24 }25 26 }27 public abstract class Animal28 {29 public abstract voID Eat();30 }31 32 public class Dog : Animal33 {34 public overrIDe voID Eat()35 {36 Console.Writeline("dog eat");37 }38 }39 40 public class Pig : Animal41 {42 public overrIDe voID Eat()43 {44 Console.Writeline("pig eat");45 }46 }47 48 public abstract class AnimalFactory49 {50 public abstract Animal GetAnimal();51 }52 53 public class DogFactoryFactory : AnimalFactory54 {55 public overrIDe Animal GetAnimal()56 {57 return new Dog();58 }59 60 }61 public class PigFactoryFactory : AnimalFactory62 {63 public overrIDe Animal GetAnimal()64 {65 return new Pig();66 }67 }68 }总结
以上是内存溢出为你收集整理的工厂模式全部内容,希望文章能够帮你解决工厂模式所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)