抽象工厂方法模式

一.概念编程

为建立一组相关或者是相互依赖的对象提供一个接口,而不须要指定他们的具体实现类。app

二.优势ide

分离接口与实现,客户端使用抽象工厂来建立须要的对象,而客户端根本就不知道具体的实现是谁,客户端只是面向产品的接口编程而已,使其从具体的产品实现中解耦,同时基于接口与实现分离,使抽象该工厂方法模式在切换产品类时更加灵活、容易。对象

三. 缺点blog

 对类文件的爆炸性增长,不太容易扩展新的产品类接口

四.UML图产品

五.实例class

/**
 * 计算器运算操做接口
 * Created by hm on 16/10/17.
 */

public abstract class OperatorInterface {

    /**
     * 运算操做数
     * @param num 可变参数
     */
   public abstract int operator(int ...num);
}
/**
 * 加法运算
 * Created by hm on 16/10/17.
 */

public class AddOperator extends OperatorInterface {
    @Override
    public int operator(int... num) {
        int sum = 0;
        if(num.length != 0){

            for (int a : num) {
                sum += a;
            }
        }
        return sum;
    }
}
/**
 * 工厂接口
 * Created by apple on 16/10/17.
 */

public interface ProductFactory {
    OperatorInterface createOperator();
}
/**
 * 加法工厂
 * Created by apple on 16/10/17.
 */

public class AddOperatorFactory implements ProductFactory {
    @Override
    public OperatorInterface createOperator() {
        return new AddOperator();
    }
}
相关文章
相关标签/搜索