【设计模式】01、简单工厂设计模式
【类图】:
【Code】
internal class SimpleFactory { internal static Computer CreateComputer(string typeName) { switch (typeName) { case "MacPro": { return new MacPro(); } case "LenovoY400": { return new LenovoY400(); } default: { Console.WriteLine("not found this type:" + typeName); return null; } } } }
【描述】
这里只看下SimpleFactory的代码,工厂中的CreateComputer方法根据传入的typeName,生成不同的对象。如果我们这时候又有了新的Computer类型ChromeBook,这时候我们需要添加一个新的类ChromeBook并修改工厂方法,加一个分支。但这违反了OCP(Open Close Principle)
【优缺点】
优点:简单工厂模式实现了职责的分离,客户端不再需要主动去创建产品对象,而是将这个职责交给了工厂去执行。
缺点:
1、简单工厂模式将所有产品对象的创建逻辑都集中在一个工厂方法中,当逻辑过于繁杂时,一旦不能正常工作时,整个系统都会受到影响。
2、不利于扩展,添加新产品将违反OCP。
请注明文章出处[http://www.cnblogs.com/fb-boy/]