乐趣区

关于java:设计模式工厂方法模式

定义

工厂办法模式是咱们开发中应用频率十分高的一个设计模式,比方赫赫有名的 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. 工厂模式是典型的接口框架,高层模块只须要晓得形象接口类,不须要关怀具体的实现。合乎迪米特法令,咱们不须要的不必去交换,也合乎依赖倒置准则,只依赖产品的抽象类。

退出移动版