工厂模式
Posted hanliping
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了工厂模式相关的知识,希望对你有一定的参考价值。
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 Animal 28 29 public abstract void Eat(); 30 31 32 public class Dog : Animal 33 34 public override void Eat() 35 36 Console.WriteLine("dog eat"); 37 38 39 40 public class Pig : Animal 41 42 public override void Eat() 43 44 Console.WriteLine("pig eat"); 45 46 47 48 public abstract class AnimalFactory 49 50 public abstract Animal GetAnimal(); 51 52 53 public class DogFactoryFactory : AnimalFactory 54 55 public override Animal GetAnimal() 56 57 return new Dog(); 58 59 60 61 public class PigFactoryFactory : AnimalFactory 62 63 public override Animal GetAnimal() 64 65 return new Pig(); 66 67 68
以上是关于工厂模式的主要内容,如果未能解决你的问题,请参考以下文章
JAVA设计模式——工厂模式简单工厂模式工厂方法模式抽象工厂模式