【设计模式】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;
                    }
            }
        }
    }
View Code

【描述】

这里只看下SimpleFactory的代码,工厂中的CreateComputer方法根据传入的typeName,生成不同的对象。如果我们这时候又有了新的Computer类型ChromeBook,这时候我们需要添加一个新的类ChromeBook并修改工厂方法,加一个分支。但这违反了OCP(Open Close Principle)

【优缺点】

优点:简单工厂模式实现了职责的分离,客户端不再需要主动去创建产品对象,而是将这个职责交给了工厂去执行。

缺点:
1、简单工厂模式将所有产品对象的创建逻辑都集中在一个工厂方法中,当逻辑过于繁杂时,一旦不能正常工作时,整个系统都会受到影响。
2、不利于扩展,添加新产品将违反OCP。

原文地址:https://www.cnblogs.com/fb-boy/p/3485001.html