07 2023 档案
摘要:# 设计模式之访问者模式 ### 一、概念 定义:封装一些作用于某种数据结构中的各元素的操作,它可以在不改变这个数据结构的前提下定义作用于这些元素的新的操作。 - 模式动机:对于存储在一个集合中的对象,他们可能具有不同的类型(即使有一个公共的接口),对于该集合中的对象,**可以接受一类称为访问者的对
阅读全文
摘要:# 设计模式之迭代器模式 ### 一、概念 **定义:**提供一种遍历集合元素的统一接口,用一致的方法遍历集合元素,不需要知道集合对象的底层表示,即:不暴露其内部的结构 - 意图:如果我们的**集合元素是用不同方式实现**的,有数组、集合或者其他方式。当客户端要**遍历这些集合元素**的时候就要使用
阅读全文
摘要:# 设计模式之备忘录模式 ### 一、引例 **案例引入** 游戏角色状态恢复问题 游戏角色有攻击力和防御力,在大战Boss前保存自身的状态(攻击力和防御力),当大 战Boss后攻击力和防御力下降,从备忘录对象恢复到大战前的状态。 **传统的设计方案**  1) 我们买了一套智能家电,有照明灯、风扇、冰箱、洗衣机,我们只
阅读全文
摘要:# 设计模式之享元模式 ### 一、意图 在面向对象系统的设计和实现中,创建对象是最为常见的操作。这里面就有一个问题:如果一个应用程序使用了太多的对象,就会造成很大的存储开销。特别是对于大量轻量级(细粒度)的对象,比如在文档编辑器的设计过程中,我们如果为每个字母创建一个对象的话,系统可能会因为大量的
阅读全文
摘要:# 设计模式之外观模式 ### 一、引例 当我们现在想要在家通过投影仪看电影,其过程包括关灯,关闭窗帘,打开投影仪,这些家居都是独立的,就会有灯光开关、窗帘开关、投影仪开关。我们需要一步一步的去打开这些开关。如果用代码来实现,就可将灯光,窗帘等都看成一个对象,然后用Client端依次去调用这些对象的
阅读全文