摘要:设计模式分类(23) 创建型模式(5) "抽象工厂(Abstract Factory)" "建造者(Builder)" "工厂方法(Factory Method)" "原型(Prototype)" "单例(Singleton)" 结构型模式(7) "适配器(Adapter)" "桥接(Bridge) 阅读全文
posted @ 2019-12-22 15:39 callmeDevil 阅读 (64) 评论 (0) 编辑
摘要:访问者模式 定义 表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。 UML图 特点 访问者模式适用于数据结构相对稳定的系统,它把数据和作用于结构上的操作之间的耦合解脱开,使得操作集合可以相对自由的演化 访问者模式的目的是要把处理从数据结构分离 阅读全文
posted @ 2019-12-22 14:43 callmeDevil 阅读 (34) 评论 (0) 编辑
摘要:解释器模式 定义 给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。 目的 如果一种特定类型的问题发生的频率足够高,那么可能就值得将该问题的各个实例表述为一个简单语言中的句子。这样就可以构建一个解释器,该解释器通过解释这些句子来解决该问题。 UML图 好 阅读全文
posted @ 2019-12-15 17:06 callmeDevil 阅读 (56) 评论 (0) 编辑
摘要:享元模式 定义 运用共享技术有效的支持大量细粒度的对象。 UML图 举个栗子 实际开发当中,一个项目如果做得好,如果市场打通到其他地方,那么核心代码其实是可以通用的,只不过用着不同的数据和特性出来的模版而已,这些对用户来说是非透明的。使用最小的开销获得最大的收益,这是所有公司的目的。 Talk is 阅读全文
posted @ 2019-12-15 15:56 callmeDevil 阅读 (24) 评论 (0) 编辑
摘要:中介者模式 定义 用一个中介对象来封装一系列的对象交互。中介使各对象之间不需要显示的相互引用,从而使其耦合松散,而且可以独立的改变它们之间的交互。 UML图 举个栗子 “联合国”就是世界上各个国家的一个“中介”,许多事情都不是国家之间直接交互,而是通过“安理会”等组织进行协商、投票等过程。 Talk 阅读全文
posted @ 2019-12-15 12:02 callmeDevil 阅读 (26) 评论 (0) 编辑
摘要:职责链模式 定义 使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这个对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。 UML图 好处 当客户提交一个请求时,请求是沿链传递直至有一个 ConcreteHandler 对象负责处理它 接收者和发送者都没有对方 阅读全文
posted @ 2019-12-14 17:59 callmeDevil 阅读 (36) 评论 (0) 编辑
摘要:举个栗子 路边摊吃烧烤,老板只有一人,又要记住点单,又要忙着收费,客户做什么都要排队。。。 反例思路1 如果客户多了,请求多,就容易混乱,他叫五串羊肉串,你叫三个烤鸡翅,老板哪里忙得过来。代码中的体现就是一句一句输出,所以应该要有个服务员。。。 门面改造 Talk is cheap, show me 阅读全文
posted @ 2019-12-14 17:01 callmeDevil 阅读 (26) 评论 (0) 编辑
摘要:举个栗子 在M和N两种品牌的手机里面各做通讯录和游戏两种软件。前提:M和N手机之间不通用。 反例思路1 以手机品牌为主体,各自实现软件。 反例思路2 以手机软件为主体,各自适配品牌。 弊端说明 对象的继承关系是在编译时就定义好了,所以无法在运行时改变从父类继承的实现。 子类的实现与它的父类有非常紧密 阅读全文
posted @ 2019-12-14 16:01 callmeDevil 阅读 (30) 评论 (0) 编辑
摘要:单例模式 定义 保证一个类仅有一个实例,并提供一个访问它的全局访问点。 通常我们可以让一个全局变量使得一个对象被访问,但它不能防止你实例化多个对象。一个最好的办法就是,让类自身负责保存它的唯一实例。这个类可以保证没有其他实例可以创建,并且它可以提供一个访问该实例的方法。 UML图 方式一:单线程下的 阅读全文
posted @ 2019-08-17 16:03 callmeDevil 阅读 (77) 评论 (0) 编辑
摘要:迭代器模式 定义 提供一种方法顺序访问一个聚合对象中各个元素,而又不暴露该对象的内部表示。 什么时候用? 当你需要访问一个聚集对象,而且不管这些对象是什么都需要遍历的时候,你就应该考虑用迭代器模式 。 你需要对聚集有多种方式遍历时,可以考虑用迭代器模式。 UML图 模板代码 Aggregate It 阅读全文
posted @ 2019-08-17 14:46 callmeDevil 阅读 (74) 评论 (0) 编辑