关于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.工厂模式是典型的接口框架,高层模块只须要晓得形象接口类,不须要关怀具体的实现。合乎迪米特法令,咱们不须要的不必去交换,也合乎依赖倒置准则,只依赖产品的抽象类。

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理