牛客图书馆 > 读书笔记
  • HeadFirst设计模式代理模式设计谜题ImageProxy类似乎有两个有条件语句控制的状态

    问题来自HeadFirst设计模式第11章代理模式468页的设计谜题:ImageProxy类似乎有两个有条件语句控制的状态,你能否用另一个设计模式清理这样的代码?你要如何重新设计ImageProxy? 思路:我们可以使用状态模式:实现两个状态,分别是Imag...
    heyJulian 编辑于 2020-08-30 15:37:22
  • 《Head First 设计模式》第十章-状态模式

    状态模式 策略模式和状态模式是双胞胎,在出生时才分开。你已经知道,策略模式是围绕可以互换的算法来创建成功业务的,然而,状态走的是更崇高的路,它通过改变对象内部的状态来帮助对象控制自己的行为。 定义状态模式 先看看定义:状态模式允许对象在内部状态改变时改变它的行...
    NeverLand_ 编辑于 2019-08-08 16:12:51
  • 《Head First设计模式》第九章(2)-组合模式

    组合模式 ​ 基于前一篇迭代模式的案例进行需求更新,餐厅的菜单管理系统需要有煎饼屋菜单和披萨菜单。现在希望在披萨菜单中能够加上一份餐后甜点的子菜单。 在迭代模式中,披萨菜单是用数组维护的,我们需要让披萨菜单持有一份子菜单,但是不能真的把他赋值给菜单项数组...
    NeverLand_ 编辑于 2019-07-12 11:36:03
  • 《Head First设计模式》第九章(1)-迭代器模式

    迭代器模式 因为这一章涉及到两个模式,内容有点多,还有一个组合模式留到下一篇写吧。 有许多种方法可以把对象堆起来成为一个集合(collection)。你可以把它们放进数组、堆栈、列表或者是散列表(Hashtable)中,这是你的自由。每一种都有它自己的优点和适...
    NeverLand_ 编辑于 2019-07-05 17:06:05
  • 《Head First设计模式》第八章笔记-模板方法模式

    模板方法模式 之前所学习的模式都是围绕着封装进行,如对象创建、方法调用、复杂接口的封装等,这次的模板方法模式将深入封装算法块,好让子类可以在任何时候都将自己挂接进运算里。 模板方法定义:模板方法模式在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模板...
    NeverLand_ 编辑于 2019-07-05 11:37:17
  • 《Head First设计模式》第七章(2)-外观模式

    通过上一篇你已经知道适配器模式是如何将一个类的接口转换成另一个符合客户期望的接口的。你也知道在Java中要做到这一点,必须将一个不兼容接口的对象包装起来,变成兼容的对象。​ 我们现在要看一个改变接口的新模式,但是它改变接口的原因是为了简化接口,这个模式被...
    NeverLand_ 编辑于 2019-07-04 15:27:35
  • 《Head First设计模式》第七章(1)-适配器模式

    适配器模式 适配器模式是什么,你一定不难理解,因为现实中到处都是。比如说: 如果你需要在欧洲国家使用美国制造的笔记本电脑,你可能需要使用一个交流电的适配器…… 当你不想改变现有的代码,解决接口不适配问题,便可使用适配器模式,你可以写一个类,将新厂...
    NeverLand_ 编辑于 2019-06-21 10:08:39
  • 《Head First设计模式》第六章笔记-命令模式

    封装调用-命令模式 命令模式可将“动作的请求者”从“动作的执行者”对象中解耦。 本篇中将不再描述书中所引入的“巴斯特家电自动化公司”的遥控器控制案例,而使用简单易懂的餐厅案例。 在开始之前,让我们通过一个现实中的例子来了解命令模式。...
    NeverLand_ 编辑于 2019-06-13 17:24:30
  • 《Head First设计模式》第五章笔记-单件模式

    单件模式 定义:确保一个类只有一个实例,并提供全局访问点。 编写格式: public class MyClass{ private MyClass(){}//构造方法私有化 public static MyClass getIns...
    NeverLand_ 编辑于 2019-06-13 11:15:43
  • 《Head First设计模式》第四章笔记 工厂模式(下)

    上一篇我们描述了工厂模式的简单工厂与工厂方法,这篇继续讲述抽象工厂。 背景紧接上篇, 现在背景有变,有些加盟店,使用低价原料来增加利润,你必须采取一些手段,以免毁掉你的披萨店品牌。 你打算建造一家成产原料的工厂,并将原料运送到各家加盟店,那么剩下最...
    NeverLand_ 编辑于 2019-05-26 11:53:20