装饰模式 题目链接 装饰器模式-咖啡加糖 基本概念 通常情况下,扩展类的功能可以通过继承实现,但是扩展越多,子类越多,装饰模式(Decorator Pattern, 结构型设计模式)可以在不定义子类的情况下动态的给对象添加一些额外的功能。具体的做法是将原始对象放入包含行为的特殊封装类(装饰类),从而
享元模式 题目链接 享元模式-图形编辑器 基础概念 享元模式是一种结构型设计模式,在享元模式中,对象被设计为可共享的,可以被多个上下文使用,而不必在每个上下文中都创建新的对象。 想要了解享元模式,就必须要区分什么是内部状态,什么是外部状态。 内部状态是指那些可以被多个对象共享的状态,它存储在享元对象
观察者模式 题目链接 观察者模式-时间观察者 什么是观察者模式 观察者模式(发布-订阅模式)属于行为型模式,定义了一种一对多的依赖关系,让多个观察者对象同时监听一个主题对象,当主题对象的状态发生变化时,所有依赖于它的观察者都得到通知并被自动更新。 观察者模式依赖两个模块: Subject(主题):也
命令模式 题目链接 命令模式-自助点餐机 基本概念 命令模式是一种行为型设计模式,其允许将请求封装成一个对象(命令对象,包含执行操作所需的所有信息),并将命令对象按照一定的顺序存储在队列中,然后再逐一调用执行,这些命令也可以支持反向操作,进行撤销和重做。 这样一来,发送者只需要触发命令就可以完成操作
组合模式 题目链接 组合模式-公司组织架构 基本概念 组合模式是一种结构型设计模式,它将对象组合成树状结构来表示“部分-整体”的层次关系。组合模式使得客户端可以统一处理单个对象和对象的组合,而无需区分它们的具体类型。 基本结构 组合模式包括下面几个角色: 理解起来比较抽象,我们用“省份-城市”举个例
策略模式 题目链接 策略模式-超市打折 什么是策略模式 策略模式是一种行为型设计模式,它定义了一系列算法(这些算法完成的是相同的工作,只是实现不同),并将每个算法封装起来,使它们可以相互替换,而且算法的变化不会影响使用算法的客户。 举个例子,电商网站对于商品的折扣策略有不同的算法,比如新用户满减优惠
中介者模式 题目链接 中介者模式-简易聊天室 基本概念 中介者模式(Mediator Pattern)也被称为调停者模式,是一种行为型设计模式,它通过一个中介对象来封装一组对象之间的交互,从而使这些对象不需要直接相互引用。这样可以降低对象之间的耦合度,使系统更容易维护和扩展。 当一个系统中的对象有很
18. 备忘录模式-计数器应用 题目链接 备忘录模式-redo计数器应用 基本概念 备忘录模式(Memento Pattern)是一种行为型设计模式,它允许在不暴露对象实现的情况下捕获对象的内部状态并在对象之外保存这个状态,以便稍后可以将其还原到先前的状态。 基本结构 备忘录模式包括以下几个重要角色
状态模式 题目链接 状态模式-开关台灯 基本结构 状态模式(State Pattern)是一种行为型设计模式,它适用于一个对象在在不同的状态下有不同的行为时,比如说电灯的开、关、闪烁是不停的状态,状态不同时,对应的行为也不同,在没有状态模式的情况下,为了添加新的状态或修改现有的状态,往往需要修改已有
迭代器模式 题目链接 迭代器模式-学生名单 基本概念 迭代器模式是一种行为设计模式,是一种使用频率非常高的设计模式,在各个语言中都有应用,其主要目的是提供一种统一的方式来访问一个聚合对象中的各个元素,而不需要暴露该对象的内部表示。通过迭代器,客户端可以顺序访问聚合对象的元素,而无需了解底层数据结构。