`

抽象工厂模式

 
阅读更多
优点:
将对象的创建统一起来便于维护和整体把控,
开闭原则:对扩展开放,对修改封闭

缺点:
使用限制:工厂模式需要类实现它的接口并且在业务内部存在明显的继承关系

缺点:耦合性提高,由于工厂类集中了所有实例的创建逻辑,违反了高内聚责任分配原则,将全部创建逻辑集中到了一个工厂类中,这种对条件的判断和对具体产品类型的判断交错在一起,很难避免模块功能的蔓延,对系统的维护和扩展非常不利。

可以通过高度层次化和模块化来提高系统的开闭性,而不必生硬地去套用工厂模式

示例代码:
interface Car {
    void drive();
}

class Benz implements Car {

    @Override
    public void drive() {
        System.out.println("drive Benz");
    }

}

class BMW implements Car {

    @Override
    public void drive() {
        System.out.println("drive BMW");
    }

}

class CarFactory {
    public static Car creator(String carType) {
        if (carType.equals("Benz")) {
            return new Benz();
        } else if (carType.equals("BMW")) {
            return new BMW();
        } else {
            throw new UnsupportedOperationException("car with type" + carType
                    + " is not supported.");
        }
    }
}

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics