Head First设计模式学习笔记
为什么要学习设计模式? 设计模式是在软件设计中反复出现的问题的解决方案,它们被广泛应用于提高代码的重用性、灵活性和可维护性。掌握设计模式不仅可以帮助我们更好地理解优秀的软件设计实践,还能够提高我们的设计能力和编码水平。 设计模式的分类 设计模式可以分为三类:创建型模式、结构型模式和行为型模式。我们将介绍每一类模式,并结合Java代码来说明它们的具体应用。 1. 创...
Head First 设计模式 —— 04. 工厂 (Factory) 模式
思考题 如何将实例化具体类的代码从应用中抽离,或者封装起来,使它们不会干扰应用的其他部分? P111 将实例化具体类的代码放入一个对象中管理,通过不同入参决定实例化具体的类 简单工厂 不是23种GOF设计模式之一,而更像一种编程习惯。 P117 特点 通常利用静态方法创建实例,但这样无法通过继承来改变创建方法的行为。 P115 缺点 违反开闭原则,增加产品时需要修改工厂类。 工厂方法模...
Head First 设计模式 —— 03. 装饰器 (Decorator) 模式
思考题 有如下类设计: 如果牛奶的价钱上扬,怎么办?新增一种焦糖调料风味时,怎么办? 造成这种维护上的困难,违反了我们之前提过的哪种设计原则? P82 取出并封装变化的部分,让其他部分不收影响 多用组合,少用继承 思考题 请为下面类的 cost() 方法书写代码。 P83 抽象类:Beverage public class Beverage { public double cost(...
Head First 设计模式 —— 02. 观察者 (Observer) 模式
思考题 在我们的一个实现中,下列哪种说法正确?(多选) P42 public class WeatherDate { // 实例变量声明 public void measurementsChanged() { float temp = getTemperature(); float humidity = getHumidity(); ...
Head First 设计模式 - 01. 策略 (Strategy) 模式
当涉及到“维护”时,为了“复用”目的而使用继承,结局并不完美 P4 对父类代码进行修改时,影响层面可能会很大 思考题 利用继承来提供 Duck 的行为,这会导致下列哪些缺点?(多选) P5 [ ] A. 代码在多个子类中重复 使用继承就是为了复用代码 【答案有此选项】从另一方面考虑,也有这个缺点,比如:多个子类都存在相同的实现,但又与父类的实现不同 [x] B. 运行时的行为不容...
Head First 设计模式中的命令模式 的一个错误
最近在看Head First 设计模式,其中命令模式中有讲到实现撤销功能,并且作者还出了一道题, 下面的是书中习题: public class MarcoCommand implements Command { Command[] commands; public MarcoCommand(Command[] commands) { this.commands = c...
Head First Design Patterns(深入浅出设计模式)-目录
$stringUtil.substring( $!{XssContent1.description},200)...
《Head First设计模式》读书笔记(二)
$stringUtil.substring( $!{XssContent1.description},200)...
Head First设计模式之装饰者模式
$stringUtil.substring( $!{XssContent1.description},200)...
本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。