定义
工厂办法模式是咱们开发中应用频率十分高的一个设计模式,比方赫赫有名的SPRING框架,IOC就是工厂办法模式,工厂模式定义为:定义一个用于创建对象的接口,让自雷决定实例化那一个类。工厂形式应用一个类的实例化提早到其子类。
简略工厂模式
假如一个模块只须要一个鼠标产品工厂类,类图如下:
代码实现:
/** * 鼠标形象接口 */public interface Mouse { /** * 滚轮 */ void roller();}/** * 我是A鼠标 */public class AMouse implements Mouse { @Override public void roller() { }}/** * 我是B鼠标 */public class BMouse implements Mouse { @Override public void roller() { }}/** * 鼠标产品工厂类 */public class MouseProductFactory { public static Mouse createMouse(Class mouseClass){ Mouse mouse = null; try { mouse = (Mouse) Class.forName(mouseClass.getName()).newInstance(); } catch (Exception e) { e.printStackTrace(); } return mouse; }}/** * 客户端类 */public class Client { public static void main(String[] args) { Mouse mouse = MouseProductFactory.createMouse(AMouse.class); mouse.roller(); }}
长处
1.良好的封装性,代码构造清晰。如果一个对象须要一个具体的产品对象,只须要晓得这个产品的类名/束缚字符串就饿能够了,不须要晓得创建对象的深信过程,升高模块间的耦合
2.扩展性好,在新增产品的状况下,只须要具体的工厂类或者扩大一个工厂类就能够实现。
3.屏蔽产品类。调用者只须要晓得产品接口,不须要关注产品的实现过程。
4.工厂模式是典型的接口框架,高层模块只须要晓得形象接口类,不须要关怀具体的实现。合乎迪米特法令,咱们不须要的不必去交换,也合乎依赖倒置准则,只依赖产品的抽象类。