工厂模式

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设计模式——工厂模式简单工厂模式工厂方法模式抽象工厂模式

C++实现工厂模式(简单工厂模式工厂方法模式抽象工厂模式)

设计模式之工厂模式详解和应用

iOS经常使用设计模式——工厂方法(简单工厂模式,工厂方法模式, 抽象工厂模式)

设计模式——抽象工厂模式