zoukankan      html  css  js  c++  java
  • 设计模式之Factory

      工厂模式就是专门负责实例化大量相同接口的类。简单的工厂模式用《head first》中的例子就要生产不同的比萨,只需要告诉工厂你要什么样的比萨,它就会给你生产出来。这样的代码如下:

      想一下简单的工厂模式为我们做了什么?相当于把生成对象的这个功能分离出去,也就是解耦让代码变得简单。这样做还有一个好处就是,在别人调用这个工厂的时候,不仅能简单地返回一个对象,还可以完成一些想要的操作。把这些操作放在这里就可以强制、统一地进行了。

      这样做的初衷是想让代码尽量地简单,但是现在情况可能并不怎么好,因为在一个比萨工厂中要考虑所有的情况,而且在有所改变的时候又需要修改代码。这样本金功能简单的工厂类中的代码也开始变得复杂。其实这个解决方法很简单,对工厂也做一次抽象就好了:

      到这里,我们解耦已经很彻底了,但是马上就会发现新的问题?如果甜的、辣的各种比萨都有一个特定的类去实现,那比萨的数量是相当庞大的,所以工厂模式中的工厂是需要好好设计的,应该可以看做解耦与类数目之间的平衡吧。

  • 相关阅读:
    (转) Nova是如何统计OpenStack资源
    (转) 一次批量重启引发的Neutron网络故障
    (转)理解Keystone的四种Token
    neutron 虚拟机网络问题调试
    转 Nova: 虚机的块设备总结 [Nova Instance Block Device]
    kvm 客户机系统的代码是如何运行的
    12 while循环
    11猜拳游戏
    10 if 嵌套
    09 if...elif..else语句
  • 原文地址:https://www.cnblogs.com/ggzwtj/p/2226739.html
Copyright © 2011-2022 走看看