zoukankan      html  css  js  c++  java
  • 【设计模式】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。

  • 相关阅读:
    hdu 1896 stones
    各种类型的取值范围
    RSS/PSS/VSZ
    kasan BUG log
    ARM机器码分析
    Linux进程状态
    谢宝友: 深入理解RCU之七:分级RCU实现
    rcu_preempt detected stalls on CPUs/tasks
    Linux 内核 hlist
    linux cmd
  • 原文地址:https://www.cnblogs.com/fb-boy/p/3485001.html
Copyright © 2011-2022 走看看