工厂模式的优点:
1 良好的封装型,代码结构清晰,一个对象创建是有条件约束的,如果一个调用者需要一个具体的产品对象,只需要知道这个产品的类名就可以了,不用知道创建对象的艰辛过程,降低模块间的耦合性。
2 工厂方法模式的扩展性非常的好,在增加产品类的情况下,只需要适当的修改具体的工厂类或扩展一个工厂类,就可以完成。
3 屏蔽产品类
4 高度结偶
一个简单工厂模式实例
定义产品接口
实现2个产品类
定义工厂接口
实现工厂类
业务场景
运行结果
至此,一个简单工厂就完成了。
延迟加载的工厂模式:
同样的先定义共有的man接口
定义两个实现类
定义抽象工厂接口
抽象工程实现类
业务场景类
结果
通过断点调试为,我们可以看到,第一词调用createMan方法的时候,是通过
( Man ) Class.forName( T.getName( ) ).newInstance( );获取实例的,但是第二次调用的时候,使用了缓存HashMap里面的值。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。