【设计模式】0一、简单工厂设计模式

【类图】:ide

 【Code】this

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

 

【描述】spa

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

【优缺点】code

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

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

相关文章
相关标签/搜索