美文网首页
Java设计模式——工厂模式

Java设计模式——工厂模式

作者: icyage | 来源:发表于2017-11-29 20:56 被阅读10次

    Java设计模式之工厂模式

    回顾

    上期我们介绍了一个非常简单的设计模式,也是平时开发工作中最常见也是最常用的设计模式:单例模式。如果小伙伴们忘记了单例模式是什么样的,或者忘记了Java怎样优雅的实现单例模式的话,建议先阅读上一篇《Java设计模式——单例模式》

    工厂模式

    介绍

    工厂顾名思义就是重复生产产品的地方,那么工厂模式就是生产实例对象的地方。

    问题

    在平时的开发中,我们会遇到很多实例对象创建的时候,那么遇到这种比较大的类,我们怎么办呢?

    通常我们会这样

    或者这样

    思考

    这样的代码会有什么样的问题呢?

    • 代码中会到处出现各种类似的创建代码,不便于统一管理,一旦类的属性有变更维护成本非常大。
    • 即使是这个类始终不变,不过如果使用的地方特别多,也就会出现很多重复代码
    • 面向对象编程,应更关注于对象中有哪些方法可以使用,而不是如何构造这个对象

    这里就引出了工厂模式的概念,将对象生成的逻辑合并到一个类中统一管理,那么这个类就是我们的工厂。
    工厂模式的概念本身是一个模式的集合,对于经典的设计模式中,只有工厂方法模式和抽象工厂模式两种。还有一种描述也需要特别关注下,很多地方描述的简单工厂本身不是一个设计模式,是演化工厂方法模式中过度的工厂模式版本。把其看作一个工具类更合适一些。

    简单工厂

    实例

    简单工厂



    输出内容


    可以看出来这个代码中实现了一个静态方法,通过此方法可以获取想要的实例对象。
    实例对象——以类为模版产生的具体的实例对象
    类对象——类本身

    工厂方法模式

    简介

    工厂类通过实现生产的生产方法来生产具体的产品。(这里有一点必须要要注意,这里的工厂只生产一种产品)


    实例

    抽象工厂模式

    简介

    抽象出生产产品族的方法,然后通过继承方式来实现各产品的实现方法。

    实例

    总结

    • 简单工厂——用来生产同一等级结构中的任意产品
    • 工厂方法——用来生产同一等级结构中的固定产品
    • 抽象工厂——用来生产不同产品族的全部产品

    相关文章

      网友评论

          本文标题:Java设计模式——工厂模式

          本文链接:https://www.haomeiwen.com/subject/rksdpxtx.html