大家好,我是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
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。