
设计模式
苏小小016
只要安然无恙,你就只管前进吧
展开
-
【笔记整理】图解设计模式 | 关于UML
【笔记整理】图解设计模式 | 导航1. abstract类(抽象类)/abstract方法(抽象方法)的名字以斜体方式显示。 抽象--->斜体2. static字段(静态字段)/static方法(静态方法)的名字带有下划线。 静态--->下划线3. 空心箭头+实线:继承(extends) 子类 ——> ...原创 2019-01-05 10:41:52 · 326 阅读 · 0 评论 -
【笔记整理】图解设计模式 | 第10章 Strategy模式(整体地替换算法)
【笔记整理】图解设计模式 | 导航定义可以将“策略”理解为“算法”。 为了解决问题,我们需要编写特定的算法。使用Strategy模式可以整体地替换算法的实现部分,这能够让我们轻松地以不同的算法去解决同一个问题。Strategy模式中的登场角色Strategy(策略) Strategy角色负责决定实现策略所必需的接口(API)。ConcreteStrategy(...原创 2019-02-18 22:57:56 · 267 阅读 · 0 评论 -
【笔记整理】图解设计模式 | 第11章 Composite模式(容器与内容的一致性)
【笔记整理】图解设计模式 | 导航定义能够使容器与内容具有一致性,创造出递归结构的模式就是Composite模式。Composite模式中的登场角色Leaf(树叶) 表示“内容”的角色。在该角色中不能放入其他对象。Composite(复合物) 表示容器的角色。可以在其中放入Leaf角色和Composite角色。Component(一致性) ...原创 2019-02-21 02:28:43 · 313 阅读 · 0 评论 -
【笔记整理】图解设计模式 | 第12章 Decorator模式(装饰边框与被装饰物的一致性)
【笔记整理】图解设计模式 | 导航定义不断地为对象添加装饰的设计模式被称为Decorator模式,其中Decorator指的是“装饰物”。Decorator模式中的登场角色Component(API,抽象) Component角色定义了公共的接口(API)。ConcreteComponent(被装饰物) 该角色是实现了Component角色所定义的...原创 2019-03-13 23:57:53 · 264 阅读 · 0 评论 -
【笔记整理】图解设计模式 | 第14章 Chain of Responsibility模式(推卸责任)
【笔记整理】图解设计模式 | 导航定义当外部请求程序进行某个处理,但程序暂时无法直接决定由哪个对象负责处理时,就需要推卸责任。 将多个对象组成一条职责链,然后按照它们在职责链上的顺序一个一个地找出到底应该谁来负责处理。 弱化“请求方”和“处理方”之间的关联关系,让双方各自都成为可独立复用的组件。此外,如根据情况不同,负责处理的对象也会发生变化的这种需求。 自己能做,就自己做;不能...原创 2019-03-31 01:49:43 · 309 阅读 · 0 评论 -
【笔记整理】图解设计模式 | 第16章 Mediator模式(只有一个仲裁者)
【笔记整理】图解设计模式 | 导航定义组员向仲裁者报告,仲裁者向组员下达指示。 当发生麻烦事情的时候,通知仲裁者;当发生涉及全体组员的事情时,也通知仲裁者。 当仲裁者下达指示时,组员会立即执行。团队组员之间不再互相沟通并私自做出决定,而是发生任何事情都向仲裁者报告。 另一方面,仲裁者站在整个团队的角度上对组员上报的事情做出决定。Mediator模式中的登场角色Mediato...原创 2019-04-06 00:46:18 · 286 阅读 · 0 评论 -
【笔记整理】图解设计模式 | 第13章 Visitor模式(访问数据结构并处理数据)
【笔记整理】图解设计模式 | 导航定义数据结构与处理被分离开来。 编写一个表示“访问者”的类来访问数据结构中的元素,并把对各元素的处理交给访问者类。这样,当需要增加新的处理时,我们只需要编写新的访问者,然后让数据结构可以接受访问者的访问即可。Visitor模式中登场角色Visitor(访问者) Visitor角色负责对数据结构中每个具体元素(ConcreteEle...原创 2019-03-29 01:12:01 · 364 阅读 · 0 评论 -
【笔记整理】图解设计模式 | 第15章 Facade模式(简单窗口)
【笔记整理】图解设计模式 | 导航定义为大型程序的调用准备一个“窗口”。 可以为相互关联在一起的错综复杂的类整理出高层接口(API)。 Facade角色可以让系统对外只有一个简单的就(API)。 Facade角色会考虑到系统内部各个类之间的责任关系和依赖关系,按照正确的顺序调用各个类。Facade模式中登场角色Facade(窗口) Facade角色是代表构成系...原创 2019-04-03 00:11:51 · 260 阅读 · 0 评论 -
【笔记整理】图解设计模式 | 第17章 Observer模式(发送状态变化通知)
【笔记整理】图解设计模式 | 导航定义当观察对象的状态发生变化时,会通知给观察者。 Observer模式适用于根据对象状态进行相应处理的场景。Observer模式中的登场角色Subject(观察对象) Subject角色表示观察对象。Subject角色定义了注册观察者和删除观察者的方法。此外,它还声明了“获取现在的状态”的方法。ConcreteSubject(...原创 2019-04-15 23:52:58 · 338 阅读 · 0 评论 -
【笔记整理】图解设计模式 | 第9章 Bridge模式(将类的功能层次结构与实现层次结构分离)
【笔记整理】图解设计模式 | 导航定义在“类的功能层次结构”和“类的实现层次结构”之间搭建桥梁。类的层次结构的两个作用希望增加新功能时父类具有基本功能 在子类中增加新的功能以上这种层次结构被称为“类的功能层次结构”。当要增加新的功能时,我们可以从各个层次的类中找出最符合自己需求的类,然后以它为父类编写子类,并在子类中增加新的功能。这就是“类的功能层次结构”。...原创 2019-02-18 00:07:17 · 445 阅读 · 0 评论 -
【笔记整理】图解设计模式 | 第5章 Singleton模式(只有一个实例)
【笔记整理】图解设计模式 | 导航定义确保只生成一个实例的模式被称为Singleton模式。Singleton模式中的登场角色SingletonSingleton模式的类图拓展思路的要点为什么必须要设置限制?Singleton模式对实例的数量设置了限制,当存在多个实例时,实例之间相互影响,可能会产生意想不到的Bug。 何时生成这个唯一的实例?静态字段是类加载的过程...原创 2019-01-10 07:21:41 · 233 阅读 · 0 评论 -
【笔记整理】图解设计模式 | 导航
【笔记整理】图解设计模式 | 关于UML 第1部分 适应设计模式 【笔记整理】图解设计模式 | 第1章 Iterator模式(一个一个遍历)【笔记整理】图解设计模式 | 第2章 Adapter模式(加个“适配器”以便于复用) 第2部分 交给子类 【笔记整理】图解设计模式 | 第3章 Template Method模式(将具体处理交给子类)【笔记整理】图解设计模式 | 第...原创 2019-01-05 10:44:13 · 457 阅读 · 0 评论 -
【笔记整理】图解设计模式 | 第1章 Iterator模式(一个一个遍历)
【笔记整理】图解设计模式 | 导航Iterator模式中的登场角色Iterator(迭代器) ConcreteIterator(具体的迭代器) Aggregate(集合) ConcreteAggregate(具体的集合)Iterator模式的类图拓展思路的要点为什么要在集合之外引入Iterator这个角色呢?引入Iterator后可以将遍历与实现分离开来。 调用者...原创 2019-01-05 11:32:03 · 256 阅读 · 0 评论 -
【笔记整理】图解设计模式 | 第6章 Prototype模式(通过复制生成实例)
【笔记整理】图解设计模式 | 导航定义不根据类来生成实例,而是根据实例来生成新实例。可能使用的场景对象种类繁多,无法将它们整合到一个类中时。 难以根据类生成实例时(使用鼠标绘制出的图形的实例,再创建出一个完全一模一样的实例是很困难的)。 想解耦框架与生成的实例时(根据实例生成实例,类似复印机复印文档。复印机可以不知道原稿的内容,也可以复制出相同的文件)。Prototype模...原创 2019-01-11 00:10:18 · 284 阅读 · 0 评论 -
【笔记整理】图解设计模式 | 第2章 Adapter模式(加个“适配器”以便于复用)
【笔记整理】图解设计模式 | 导航定义在程序世界中,经常会存在现有的程序无法直接使用,需要做适当的变换之后才能使用的情况。这种用于填补“现有的程序”和“所需的程序”之间差异的设计模式就是Adapter模式。Adapter模式中的登场角色Target(对象) Client(请求者) Adaptee(被适配) Adapter(适配)类适配器模式的类图(使用继承)对象适...原创 2019-01-05 23:19:41 · 266 阅读 · 0 评论 -
【笔记整理】图解设计模式 | 第3章 Template Method模式(将具体处理交给子类)
【笔记整理】图解设计模式 | 导航定义在父类中定义处理流程的框架,在子类中实现具体处理的模式就称为Template Method模式。Template Method模式中的登场角色AbstractClass(抽象类或接口) ConcreteClass(具体类)Template Method模式的类图拓展思路的要点可以使逻辑处理通用化。使用这个模式能带来什么好处?优...原创 2019-01-07 00:26:19 · 249 阅读 · 0 评论 -
【笔记整理】图解设计模式 | 第7章 Builder模式(组装复杂的实例)
【笔记整理】图解设计模式 | 导航定义组装具有复杂结构的实例。Builder模式中的登场角色Builder(建造者) ConcreteBuilder(具体的建造者) Director(监工),只调用在Builder角色中被定义的方法,不依赖于ConcreteBuilder角色如何实现。Builder模式的类图Builder模式的时序图拓展思路的要点谁知道...原创 2019-01-14 00:23:24 · 279 阅读 · 0 评论 -
【笔记整理】图解设计模式 | 第4章 Factory Method模式(将实例的生成交给子类)
【笔记整理】图解设计模式 | 导航定义使用Template Method模式用于生成实例,就演变为Factory Method模式。Factory Method模式中的登场角色Product(产品) Creator(创建者) ConcreteProduct(具体的产品) ConcreteCreator(具体的创建者)Factory Method模式的类图拓展思路的...原创 2019-01-08 23:07:22 · 237 阅读 · 0 评论 -
【笔记整理】图解设计模式 | 第8章 Abstract Factory模式(将关联零件组装成产品)
【笔记整理】图解设计模式 | 导航定义抽象工厂的工作是将“抽象零件”组装为“抽象产品”。 不关心零件的具体实现,而是只关心接口(API)。我们仅使用该接口(API)将零件组装成为产品。Abstract Factory模式中的登场角色AbstractProduct(抽象产品) AbstractFactory(抽象工厂) Client(委托者) ConcreteProduct...原创 2019-01-14 23:22:31 · 289 阅读 · 0 评论 -
【笔记整理】图解设计模式 | 第18章 Memento模式(保存状态对象)
【笔记整理】图解设计模式 | 导航定义通过引入表示实例状态的角色,可以在保存和恢复实例时有效地防止对象的封装性遭到破坏。 事先将某个时间点的实例的状态保存下来,之后在有必要时,再将实例恢复至当时的状态。 可以实现应用程序的以下功能:Undo(撤销) Redo(重做) History(历史记录) Snapshot(快照)Memento模式中的登场角色Originator...原创 2019-04-22 00:42:05 · 367 阅读 · 0 评论