工厂模式的优点:
1 良好的封装型,代码结构清晰,一个对象创建是有条件约束的,如果一个调用者需要一个具体的产品对象,只需要知道这个产品的类名就可以了,不用知道创建对象的艰辛过程,降低模块间的耦合性。

2 工厂方法模式的扩展性非常的好,在增加产品类的情况下,只需要适当的修改具体的工厂类或扩展一个工厂类,就可以完成。

3 屏蔽产品类

4 高度结偶

一个简单工厂模式实例
定义产品接口

clipboard.png

实现2个产品类

clipboard.png

clipboard.png

定义工厂接口

clipboard.png

实现工厂类

clipboard.png

业务场景

clipboard.png
运行结果

clipboard.png

至此,一个简单工厂就完成了。

延迟加载的工厂模式:

同样的先定义共有的man接口

clipboard.png

定义两个实现类

clipboard.png

clipboard.png
定义抽象工厂接口

clipboard.png

抽象工程实现类

clipboard.png

业务场景类

clipboard.png

结果

clipboard.png

通过断点调试为,我们可以看到,第一词调用createMan方法的时候,是通过
( Man ) Class.forName( T.getName( ) ).newInstance( );获取实例的,但是第二次调用的时候,使用了缓存HashMap里面的值。


雨露
98 声望16 粉丝