在创建对象时不向客户暴露内部细节的暴露,并提供一个创建对象的通用接口。
简单工厂就是把实例化的操作单独放在一个类中,这个类就成为简单工厂类,让简单工厂类来决定应该用哪个具体子类来实例化。
简单工厂的好处是将客户类和具体的子类的实现解耦,客户类不再需要知道有哪些子类以及应当实例化哪个子类。客户类往往有多个,若不使用简单工厂,那么所有的客户类都要知道所有子类的细节。缺点是:再增加子类后,在简单工厂的方法中的逻辑都需要修改。
1 | package cn.xiaohupao.simpleFactory; |
1 | package cn.xiaohupao.simpleFactory; |
1 | package cn.xiaohupao.simpleFactory; |
1 | package cn.xiaohupao.simpleFactory; |
1 | package cn.xiaohupao.simpleFactory; |
在JDK中的应用:DateFormat类中,可以根据传入的参数不同,可以判断timeStype、dateStyle等等返回不同的DateFormat的子类。