摘要:工厂方法模式的扩展性非常的好,在增加产品类的情况下,只需要适当的修改具体的工厂类或扩展一个工厂类,就可以完成。屏蔽产品类高度结偶一个简单工厂模式实例定义产品接口实现个产品类定义工厂接口实现工厂类业务场景运行结果至此,一个简单工厂就完成了。
工厂模式的优点:
1 良好的封装型,代码结构清晰,一个对象创建是有条件约束的,如果一个调用者需要一个具体的产品对象,只需要知道这个产品的类名就可以了,不用知道创建对象的艰辛过程,降低模块间的耦合性。
2 工厂方法模式的扩展性非常的好,在增加产品类的情况下,只需要适当的修改具体的工厂类或扩展一个工厂类,就可以完成。
3 屏蔽产品类
4 高度结偶
一个简单工厂模式实例
定义产品接口
实现2个产品类
定义工厂接口
实现工厂类
业务场景
运行结果
至此,一个简单工厂就完成了。
延迟加载的工厂模式:
同样的先定义共有的man接口
定义两个实现类
定义抽象工厂接口
抽象工程实现类
业务场景类
结果
通过断点调试为,我们可以看到,第一词调用createMan方法的时候,是通过
( Man ) Class.forName( T.getName( ) ).newInstance( );获取实例的,但是第二次调用的时候,使用了缓存HashMap里面的值。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/71783.html
摘要:在设计模式中,所有的设计模式都遵循这一原则。其实就是说在应用程序中,所有的类如果使用或依赖于其他的类,则应该依赖这些其他类的抽象类,而不是这些其他类的具体类。使用设计模式是为了可重用代码让代码更容易被他人理解保证代码可靠性。 这是刘意老师的JAVA基础教程的笔记讲的贼好,附上传送门 传智风清扬-超全面的Java基础 一、面向对象思想设计原则 1.单一职责原则 其实就是开发人员经常说的高...
摘要:工厂模式,又称为工厂方法模式。工厂模式,也就是工厂方法模式是解决了简单工厂要修改代码的问题,他把对象的创建操作延迟到子类工厂中,这样新增产品就不需要修改代码。 简单工厂其实并不是设计模式,只是一种编程习惯。 首先我们创建父类Cup,所有杯子类的父类。再创建它的子类BigCup和SmallCup类。 public abstract class Cup { public abst...
摘要:提供静态工厂方法而不是公共构造函数既有优点也有缺点。它们不像构造函数那样在文档中脱颖而出,因此很难弄清楚如何实例化提供静态工厂方法而不是构造函数的类。 类允许客户端获取实例的传统方法是提供公共构造器。还有一种技术应该是每个程序员的工具箱的一部分。一个类可以提供一个公共静态工厂方法,它仅仅是一个返回类实例的静态方法。下面是布尔(布尔型的盒装原语类)的一个简单示例。这个方法将一个布尔原...
摘要:从设计模式的分类来看简单工厂模式是创建型模式。使用简单工厂模式将会增加系统中类的个数,在一定程序上增加了系统的复杂度和理解难度。简单工厂模式由于使用了静态工厂方法,造成工厂角色无法形成基于继承的等级结构。 简单工厂模式提供了一个接口可以根据传递的参数的不同创建不同的对象,从而将对象自身的逻辑与对象的创建分离开。 从设计模式的分类来看简单工厂模式是创建型模式。事实上与简单工厂模式类似的还...
阅读 1844·2021-11-11 16:55
阅读 767·2019-08-30 15:53
阅读 3604·2019-08-30 15:45
阅读 753·2019-08-30 14:10
阅读 3280·2019-08-30 12:46
阅读 2135·2019-08-29 13:15
阅读 2037·2019-08-26 13:48
阅读 947·2019-08-26 12:23