factory 模式
作用:定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method 使一个类的实例化延迟到其子类。
UML图:网上很多。此处略去
个人理解:
factory method模式创建对象不一定会让我们的代码更短,实际上往往更长,我们也使用了更多的类,真正的目的在于这样可以灵活,有弹性的创建不确定的对象,而且代码可以重复性提高了,客户端的应用简化了客户程序的代码会大大减小变的更可读性。
factory模式的使用其实主要是将同一个类型对象创建方式统一化,比如我们有产品A B ,我们new A new B对 A B产品进行使用,在代码中体现是一个截然不同的建立方式。如果我们采用factory方式,那么我们只要factory(A)factory(B) ,当我们扩展一个类似产品的时候,例如C,建立生产方式还是一样的,只是产品代号不一样。
Note:软件需求变幻无穷,计划没有变化快,但是我们还是要寻找出不变的东西,并将它和变化的东西分离开来,这需要非常的智慧和经验。无数的软件工程师前辈,为我们总结了设计模式,如果我们不好好利用,岂不是太傻了!
abstract factory 模式
作用:提供一个创建一系列相关或者相互依赖对象的接口,而无需指定他们的具体的类
UML图:网上很多。此处略去
个人理解:
这种模式支持创建不同的对象,这些对象功能接近且一般都是在一起创建的。抽象工厂被具体化成不同的工厂来创建类似的的不同产品。这种模式将类用于使用的客户端分离以便通过工厂来创建。这样各类产品可以方便的变化而不需要改变使用的结构。
abstractFactory 模式经常和factoryMethod共同组合应对"对象创建"的需求变化。
抽象工厂模式最典型模型就是肯德基和麦当劳,薯条和鸡腿。