• 设计模式之Factory


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

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

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

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

  • 相关阅读:
    navigator
    windows事件
    js 数组
    类,屏蔽鼠标右键
    document.links[i].onclick;展示表单的输入
    手机端取消文字选中、取消图片长按下载
    ios显示一个下载banner
    js时间Date对象介绍及解决getTime转换为8点的问题
    iphone的click导致div变黑
    如何给外部引用的js文件传递参数
  • 原文地址:https://www.cnblogs.com/ggzwtj/p/2226739.html
Copyright © 2020-2023  润新知