【設計模式】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

相關文章
相關標籤/搜索