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

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();
    }
}

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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
本书以作者多年来为软件开发人员(包括面向对象技术老兵和新手)讲授模式的经验为基础撰写而成,首先概述了模式的基础知识,以及面向对象分析和设计在当代软件开发中的重要性。随后,使用易懂的示例代码阐明了许多当今最有用的模式,包括它们的基础概念、优点、权衡取舍、实现技术以及需要避免的缺陷,使读者能够理解模式后面的基本原则和动机,理解为什么它们会这样运作。 本书适用于软件开发专业人士,以及计算机专业、软件工程专业的高校师生,也可作为面向对象分析与设计课程的教材。 本书是最简洁、清晰、实用的设计模式著作,应用最新的Java示例,为程序员和架构师提供了使用模式进行设计、开发和交付软件的方法。 本书以作者多年来为软件开发人员讲授模式的经验为基础撰写而成。其经验已经证明,如果能够理解模式后面的基本原则和动机,理解为什么它们会这样运作,那么将有助于你加速学习模式的进程。 阅读本书,读者能够完整地理解12个核心的设计模式和1个分析模式,了解设计模式并不是孤立存在的,多个设计模式协同工作才能创建出更加坚固的应用程序。这里所讲授的12个模式并没有涵盖所有应该学会的模式,但是理解了这12个模式,你将能够举一反三,更加容易地自学其他模式。 设计模式最佳入门图书,2003JOLT大奖读者选择奖得主。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值