工厂模式

大家好,我是IT修真院成都分院第11期学员,一枚正直善良的java程序员,今天给大家分享一下,修真院java任务中的一个知识点:工厂模式

1.背景

  工厂模式使用的频率非常高,我们在开发中总能见到它们的身影。其定义为:Define an interface for creating an object, but let subclasses decide which class to instantiate. Factory Method lets a class defer instantiation to subclasses.即定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂模式是我们最常用的实例化对象模式了,是用工厂方法代替new操作的一种模式。著名的Jive论坛 ,就大量使用了工厂模式,工厂模式在Java程序系统可以说是随处可见。

2.什么是工厂模式

工厂模式具体包括了简单工厂、工厂方法、抽象工厂,它们是按照从简单到复杂的顺序排列的,属于设计模式中的创建型,其中简单工厂并不属于GOF的23中模式。但是它是理解其它的工厂模式的一个很好的基础,所以很多人在讲述设计模式的时候会提到简单工厂模式。创建型模式关注的是对象的创建,创建型模式将创建对象的过程进行了抽象,也可以理解为将创建对象的过程进行了封装,作为客户程序仅仅需要去使用对象,而不再关心创建对象过程中的逻辑。

3.工厂模式的分类

工厂模式主要是为创建对象提供了接口,分为三类;

1.simple Factory(静态工厂模式);

2.Factory Method(实例工厂模式);

3.Abstract Factory(抽象工厂);

4.工厂模式的应用

    优点:

       1. 工厂模式具有良好的封装性,代码结构清晰,也有利于扩展。在增加产品类的情况下,只需要适当地修改具体的工厂类或扩展一个工厂类,就可以完成“拥抱变化”。

        2. 工厂模式可以屏蔽产品类。这一点非常重要,产品类的实现如何变化,调用者都不用关系,只需要关心产品的接口,只要接口保持不变,系统的上层模块就不需要发生变化。

        3. 工厂模式是典型的解耦框架。高层模块只需要知道产品的抽象类,其他的实现类都不用关心。

5.什么场景下使用工厂模式

只有当无法预料所创建的实例时,才使用工厂模式。即:我们明确的计划不同条件下创建不同实例时,使用它。

7.常见问题

simple Factory和Factory Method的区别?

实例工厂模式定义了一个创建对象的接口,让子类决定实例化哪一个类

实例工厂模式使一个类的实例化延迟到子类

静态工厂模式指Factory类本身不需要实例化,

这个Factory类中提供了一个静态的方法来生成Bean对象。

去掉了抽象工厂类,只保留了Factory类,把其中的创建方法设置成static


今天的分享就到这里啦,欢迎大家点赞、转发、留言、拍砖~

技能树.IT修真院“我们相信人人都可以成为一个工程师,现在开始,找个师兄,带你入门,掌控自己学习的节奏,学习的路上不再迷茫”。

这里是技能树.IT修真院,成千上万的师兄在这里找到了自己的学习路线,学习透明化,成长可见化,师兄1对1免费指导。快来与我一起学习吧~我的邀请码:16318412,或者你可以直接点击此链接:http://www.jnshu.com/login/1/16318412

作者:埋着头向前走寻找我自己

链接:https://www.jianshu.com/p/82f5092039d8

來源:简书

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • JAVA面试题 1、作用域public,private,protected,以及不写时的区别答:区别如下:作用域 ...
    JA尐白阅读 4,862评论 1 0
  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 8,461评论 0 4
  • Spring4参考手册中文版 作者简介 翻译 铁柱 wwwshiym@gmail.com 顾问 张丙天 铁柱 ...
    google666s阅读 4,459评论 0 50
  • 设计模式之六大原则(转载) 设计模式之六大原则(转载) 关于设计模式的六大设计原则的资料网上很多,但是很多地方解释...
    天涯人1196阅读 2,669评论 0 0
  • 陈桂英觉察日记2017年11月20日 Day1 1、首先,我要嘉许自己这三天对九型人格学习的坚持,通过学习和体验,...
    中华艺术阅读 1,475评论 0 0