设计模式课后习题(工厂模式)

本文探讨了简单工厂、工厂方法和抽象工厂模式在遵循开闭原则上的表现。简单工厂模式因需修改核心工厂类而违反了开闭原则;工厂方法模式通过增加新产品实现类来扩展,符合开闭原则,但客户端可能需要修改;抽象工厂模式在添加已有产品类型的变种时符合开闭原则,但添加全新产品类别时需大量修改。
摘要由CSDN通过智能技术生成

Q : 在简单工厂方法模式,工厂方法模式,与抽象工厂模式中,那个模式符合开闭原则?为什么?那个模式一般不符合开闭原则?或者那种情况下符合,那种情况下不符合。
A:首先简单工厂模式是不符合开闭原则的,开闭原则的定义为open for extension . close for modification. 对于已经写好的代码是不允许进行修改的,但是可以扩展已经写好的代码。简单工厂模式,使用的是一个静态的工厂场类。书写的代码如下图:

public static Product createObject(String type){
    if(type == "A"){
        return new ProductA();
    }else if(type == "B"){
        return new ProductB();
    }
    ...
}

public interface Product {..}

public class ProductA implement Product{..}

public class ProductB implement Product{..}

class Client{
    Main{
        Product p = Creator.createObject(A);
        p.doSome();
    }
}

上面基本就是一个简单的工厂方法。可以看出,如果这个时候添加了一个

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值