文章 2024-07-02 来自:开发者社区

Head First设计模式学习笔记

Head First设计模式学习笔记 今天我们将深入探讨《Head First设计模式》这本经典的学习笔记,帮助您理解和应用软件设计中的关键概念。 为什么要学习设计模式? 设计模式是在软件设计中反复出现的问题的解决方案,它们被广泛应用于提高代码的重用性、灵活性和可维护性。掌握设计模式不仅可以帮助我们更好地理解优秀的软件设计实践,还能够提高我们的设计能力和编码水平...

文章 2022-02-17 来自:开发者社区

Head First 设计模式 —— 04. 工厂 (Factory) 模式

思考题 如何将实例化具体类的代码从应用中抽离,或者封装起来,使它们不会干扰应用的其他部分? P111 将实例化具体类的代码放入一个对象中管理,通过不同入参决定实例化具体的类 简单工厂 不是23种GOF设计模式之一,而更像一种编程习惯。 P117 特点 通常利用静态方法创建实例,但这样无法通过继承来改变创建方法的行为。 P115 缺点 违反开闭原则,增加产品时需要修改工厂类。 工厂方法模...

Head First 设计模式 —— 04. 工厂 (Factory) 模式
文章 2022-02-17 来自:开发者社区

Head First 设计模式 —— 03. 装饰器 (Decorator) 模式

思考题 有如下类设计: 如果牛奶的价钱上扬,怎么办?新增一种焦糖调料风味时,怎么办? 造成这种维护上的困难,违反了我们之前提过的哪种设计原则? P82 取出并封装变化的部分,让其他部分不收影响 多用组合,少用继承 思考题 请为下面类的 cost() 方法书写代码。 P83 抽象类:Beverage public class Beverage { public double cost(...

Head First 设计模式 —— 03. 装饰器 (Decorator) 模式
文章 2022-02-17 来自:开发者社区

Head First 设计模式 —— 02. 观察者 (Observer) 模式

思考题 在我们的一个实现中,下列哪种说法正确?(多选) P42 public class WeatherDate { // 实例变量声明 public void measurementsChanged() { float temp = getTemperature(); float humidity = getHumidity(); ...

Head First 设计模式 —— 02. 观察者 (Observer) 模式
文章 2022-02-17 来自:开发者社区

Head First 设计模式 - 01. 策略 (Strategy) 模式

当涉及到“维护”时,为了“复用”目的而使用继承,结局并不完美 P4 对父类代码进行修改时,影响层面可能会很大 思考题 利用继承来提供 Duck 的行为,这会导致下列哪些缺点?(多选) P5 [ ] A. 代码在多个子类中重复 使用继承就是为了复用代码 【答案有此选项】从另一方面考虑,也有这个缺点,比如:多个子类都存在相同的实现,但又与父类的实现不同 [x] B. 运行时的行为不容...

Head First 设计模式 - 01. 策略 (Strategy) 模式
文章 2022-02-17 来自:开发者社区

Head First 设计模式 —— 00. 引子

Head First 学习原则 P xxx 可视化:图片使得学习效率更高,更易懂 交谈式:第一人称交谈方式讲述学习内容更易引起注意 多思考:自主思考练习题和拓展知识的问题 保持注意力集中:将知识融合进有趣、亮眼的内容中,不断引起并保持注意力 影响情绪:关心、好奇、有趣、自豪感等有助于提高记忆能力 学习方法 P xxxiii 多理解,少记忆:自主思考,先得出自己的结论,再看看...

Head First 设计模式 —— 00. 引子
文章 2022-02-16 来自:开发者社区

气象站的故事--Head First设计模式

现在我们要为一家气象站开发一套气象监控系统,按照客户的要求,这个监控系统必须可以实时跟踪当前的天气状况(温度、湿度、大气压力),并且可以在三种不同设备上显示出来(当前天气状况、天气统计、天气预测)。客户还希望这个系统可以对外提供一个API接口,以便任何开发者都可以开发自己的显示设备,然后无缝挂接到系统中,系统可以统一更新所有显示设备的数据。客户还会提供一个可以访问气象站的硬件设备的组件,如下图所....

文章 2022-02-16 来自:开发者社区

Head First 设计模式中的命令模式 的一个错误

最近在看Head First 设计模式,其中命令模式中有讲到实现撤销功能,并且作者还出了一道题,   下面的是书中习题: public class MarcoCommand implements Command { Command[] commands; public MarcoCommand(Command[] commands) { this.commands = c...

文章 2022-02-16 来自:开发者社区

Head First Design Patterns(深入浅出设计模式)-目录

目录序你的大脑是如何理解设计模式的?此时,你正在设法学习些知识,而你的大脑要通过确认这些知识来给你提供支持。你的大脑在想:“最好出去做些更重要的事情,就象消灭野兽或者光着身子滑雪不是个好主意”。所以你要怎么样让你的大脑认为你的生死存亡都依赖于设计模式的知识? 1.Welcome to Design Patterns - 设计模式介绍 有人已经解决了你的问题。在这章里,你将学习到为什么(和怎么样)....

Head First Design Patterns(深入浅出设计模式)-目录
文章 2022-02-16 来自:开发者社区

Head First Design Patterns(深入浅出设计模式)-设计模式介绍

1.     Welcome to Design Patterns -设计模式介绍 现在我们要住进对象村(Objectville),我们刚刚开始接触设计模式…每个人都在使用它们。一会我们将去参加Jim和Betty的星期三晚上的模式聚会! 有人已经解决了你的问题。在这章里,你将学习到为什么(和怎么样),你将学习到那些幸存下来的开发者的智慧和教训,他们...

Head First Design Patterns(深入浅出设计模式)-设计模式介绍

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。