1 namespace UnitTestProject1 2 { 3 4 /// <summary> 5 /// 简单工厂模式的缺点: 6 /// 增加具体产品时,需要修改工厂类里面生成具体产品的方法,这就违反了开闭原则。具体产品经常发生变化时,不建议使用简单工厂模式。 7 /// 8 /// </summary> 9 [TestClass] 10 public class simpleDesign 11 { 12 [TestMethod] 13 public void TestMethod1() 14 { 15 IPeople people = new PeopleFactory().NewInstance(1); 16 people.SayHello(); 17 } 18 } 19 20 public interface IPeople 21 { 22 void SayHello(); 23 } 24 25 public class ChinesePeople : IPeople 26 { 27 public void SayHello() 28 { 29 Console.WriteLine("早上好,吃了吗"); 30 } 31 } 32 33 public class EnglandPeople : IPeople 34 { 35 public void SayHello() 36 { 37 Console.WriteLine("hello?"); 38 } 39 } 40 41 public class PeopleFactory 42 { 43 44 public IPeople NewInstance(int witch) 45 { 46 IPeople people = null; 47 switch (witch) 48 { 49 case 1: 50 people = new ChinesePeople(); 51 break; 52 case 2: 53 people = new EnglandPeople(); 54 break; 55 } 56 return people; 57 } 58 59 } 60 }