![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
读书笔记
文章平均质量分 84
满赋诸机
这个作者很懒,什么都没留下…
展开
-
Head First 设计模式 —— 07. 适配器模式
思考题你能想到真实世界中,还有哪些适配器的例子? P236HDMI 转 VGA 转换器Type-C 转 3.5mm 线适配器模式解析客户使用适配器的过程: P241客户通过目标接口调用适配器的方法对适配器发出请求适配器使用被适配者接口把请求转换成被适配者的一个或多个调用接口客户接收到调用的结果,但并未察觉这一切是适配器在起转换作用(客户和被适配者是解耦的,一个不知道另一个)思考题如果我们也需要一个将鸭子转换成火鸡的适配器,我们称它为 DuckAdapter。请写下这个类。你如何处原创 2021-01-10 11:24:18 · 200 阅读 · 0 评论 -
Head First 设计模式 —— 06. 命令 (Command) 模式
命令模式将“请求”封装成对象,以便使用不同的请求、队列或者日志来参数化其他对象。命令模式也支持可撤销的操作。 P206特点使请求调用者和请求接收者解耦 P207适合用来建立有弹性的设计,维持开闭原则 (同装饰器模式 P104)使用宏命令可以一次执行其他一系列命令 P225缺点存大量具体的命令类思考题命令模式的设计如何支持请求调用者和请求接收者之间的解耦? P207通过将请求接受者封装进一个命令对象,并将请求接收者的一系列动作封装成一个命令对象的方法,使得请求调用者只用持有命令原创 2021-01-09 13:59:49 · 193 阅读 · 0 评论 -
Head First 设计模式 —— 05. 单例模式
全局变量的缺点如果将对象赋值给一个全局变量,那么必须在程序一开始就创建好对象 P170和 JVM 实现有关,有些 JVM 的实现是:在用到的时候才创建对象思考题Choc-O-Holic 公司使用如下工业强度巧克力锅炉控制器public class ChocolateBoiler { private boolean empty; private boolean boiled; public ChocolateBoiler() { empty =原创 2021-01-08 21:19:26 · 234 阅读 · 2 评论 -
Head First 设计模式 —— 04. 工厂 (Factory) 模式
思考题如何将实例化具体类的代码从应用中抽离,或者封装起来,使它们不会干扰应用的其他部分? P111将实例化具体类的代码放入一个对象中管理,通过不同入参决定实例化具体的类简单工厂不是23种GOF设计模式之一,而更像一种编程习惯。 P117[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zHM6pdNX-1610024779349)(https://github.com/idealism-xxm/reading-notes/raw/master/head-first-原创 2021-01-07 21:06:50 · 249 阅读 · 0 评论 -
Head First 设计模式 - 00. 引子
《Head First 设计模式》- 00. 引子Head First 学习原则 `P xxx`学习方法 `P xxxiii`Head First 学习原则 P xxx可视化:图片使得学习效率更高,更易懂交谈式:第一人称交谈方式讲述学习内容更易引起注意多思考:自主思考练习题和拓展知识的问题保持注意力集中:将知识融合进有趣、亮眼的内容中,不断引起并保持注意力影响情绪:关心、好奇、有趣、...原创 2019-05-09 22:58:36 · 336 阅读 · 0 评论 -
Head First 设计模式 - 01. 策略(Strategy )模式
策略(Strategy )模式思考题使用接口方式的优缺点 `P6`优点缺点思考题设计原则设计原则“针对接口编程”即“针对超类型 (supertype) 编程” `P12`设计原则策略模式良好的OO设计具备的特性 `P32`所思所想当涉及到“维护”时,为了“复用”目的而使用继承,结局并不完美 P4对父类代码进行修改时,影响层面可能会很大思考题利用继承来提供 Duck 的行为,这回导...原创 2019-05-09 23:25:02 · 388 阅读 · 0 评论 -
Head First 设计模式 - 02. 观察者(Observer)模式
观察者(Observer)模式思考题观察者模式设计原则所思所想思考题在我们的一个实现中,下列哪种说法正确?(多选) P42public class WeatherDate { // 实例变量声明 public void measurementsChanged() { float temp = getTemperature(); flo...原创 2019-05-12 08:48:58 · 357 阅读 · 0 评论 -
Head First 设计模式 - 03. 装饰器(Decorator)模式
装饰器(Decorator)模式思考题思考题思考题设计原则装饰器模式特点缺点思考题所思所想思考题有如下类设计:如果牛奶的价钱上扬,怎么办?新增一种焦糖调料风味时,怎么办?造成这种维护上的困难,违反了我们之前提过的哪种设计原则? P82取出并封装变化的部分,让其他部分不收影响多用组合,少用继承思考题请为下面类的 cost() 方法书写代码。 P83抽象类:Beverage...原创 2019-05-12 09:52:24 · 514 阅读 · 1 评论