zoukankan      html  css  js  c++  java
  • 设计模式:工厂模式

    零、分类

    工厂模式分为静态工厂、抽象工厂模式、工厂方法模式

    一、工厂模式优点:

    1.可以使代码结构清晰,有效地封装变化。在编程中,产品类的实例化有时候是比较复杂和多变的,通过工厂模式,将产品的实例化封装起来,使得调用者根本无需关心产品的实例化过程,只需依赖工厂即可得到自己想要的产品。
    2.对调用者屏蔽具体的产品类。如果使用工厂模式,调用者只关心产品的接口就可以了,至于具体的实现,调用者根本无需关心。即使变更了具体的实现,对调用者来说没有任何影响。
    3.降低耦合度。产品类的实例化通常来说是很复杂的,它需要依赖很多的类,而这些类对于调用者来说根本无需知道,如果使用了工厂方法,我们需要做的仅仅是实例化好产品类,然后交给调用者使用。对调用者来说,产品所依赖的类都是透明的。
    二、工厂方法模式组成:
    1.抽象工厂角色: 这是工厂方法模式的核心,它与应用程序无关。是具体工厂角色必须实现的接口或者必须继承的父类。在java中它由抽象类或者接口来实现。
    2.具体工厂角色:它含有和具体业务逻辑有关的代码。由应用程序调用以创建对应的具体产品的对象。
    3.抽象产品角色:它是具体产品继承的父类或者是实现的接口。在java中一般有抽象类或者接口来实现。
    4.具体产品角色:具体工厂角色所创建的对象就是此角色的实例。在java中由具体的类来实现。
    5.客户端:只需要调用工厂接口就可以使用了,不需要了解产品细节

    三、区别

    1.静态工厂(简单工厂)没有抽象工厂角色,只有具体的工厂角色,存在局限性。

    2.抽象工厂模式与工厂方法模式的区别就在于,工厂方法模式针对的是一个产品等级结构;

    而抽象工厂模式则需要面对多个产品等级结构。

    四、代码详情见GitHub:

    https://github.com/firefoxer1992/DesignPatternsDemo/tree/master/src/main/java

    参考博客:

    简单工厂模式(静态工厂)

    JAVA设计模式之工厂模式(简单工厂模式+工厂方法模式)

    JAVA设计模式之抽象工厂模式

    设计模式:简单工厂、工厂方法、抽象工厂之小结与区别

  • 相关阅读:
    二分查找改遍
    条件运算符?:
    k倍区间
    分巧克力
    mm
    素数
    递归return
    确定一个域名使用的邮箱服务商
    mysql 存储过程一实例
    使用vmware 共享 windows下的文件夹 到 centos
  • 原文地址:https://www.cnblogs.com/expiator/p/8245143.html
Copyright © 2011-2022 走看看