06 2018 档案

摘要:模式简介 提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露该对象的内部表示。 一个聚合对象,应该提供一个方法让用户访问它的元素,并且不暴露其内部结构。遍历的方式可能多种多样,我们不希望在这个聚合类中定义各种遍历的方法。这种情况下,就可以使用迭代器模式 将对列表的访问和遍历从列表对象中分离出来 阅读全文
posted @ 2018-06-28 20:54 Answer.Geng 阅读(564) 评论(2) 推荐(0)
摘要:模式简介 给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。 顾名思义,解释器模式就是定义一种语法,并提供一个解释器,客户端可以使用该解释器来解释这个语句来解决问题。例如写文档常用的Markdown语法,可以用 来表示无序列表,用 来表示下划线。通过解释 阅读全文
posted @ 2018-06-26 20:31 Answer.Geng 阅读(613) 评论(0) 推荐(1)
摘要:模式简介 将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录日志,以及支持可撤销的操作。 在一些系统功能设计的时候,需要向某个对象发送请求,但是并不知道请求的接收者以及被请求的具体操作,而是在程序运行时指定具体的请求接收者。这段话比较抽象,下面通过一个实际生活中的例子 阅读全文
posted @ 2018-06-24 18:21 Answer.Geng 阅读(544) 评论(0) 推荐(1)
摘要:模式简介 使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一个链,并沿着链传递该请求,直到有一个对象处理它为止。 职责链模式是一种行为型模式,它包括命令对象以及一系列处理对象。每个处理对象决定它能够处理哪些命令对象,将不能处理的命令对象传递至职责链中的下一个处理 阅读全文
posted @ 2018-06-22 16:37 Answer.Geng 阅读(744) 评论(0) 推荐(1)
摘要:模式简介 为其他对象提供一种代理以控制对这个对象的访问。 在一些情况下,客户端不能或者不想直接引用一个对象,可以借助一个第三方代理来实现间接引用。代理对象在客户端和目标对象之间起到中介作用,通过代理对象,可以去掉客户不能看到的内容或服务,也可以添加客户需要的额外服务。 想象一下,商家想找明星艺人演出 阅读全文
posted @ 2018-06-20 21:45 Answer.Geng 阅读(593) 评论(0) 推荐(0)
摘要:模式简介 运用共享技术有效地支持大量细粒度地对象。 通常情况下,面向对象技术可以增强系统地灵活性及可扩展性,在系统开发过程中,我们会不断地增加类和对象。当对象数量过多时,将会带来系统开销过高、性能下降等问题。享元模式通过共享相同或相似的对象来解决这一类问题。在介绍享元模式之前,首先要弄清楚两个概念: 阅读全文
posted @ 2018-06-19 19:39 Answer.Geng 阅读(619) 评论(1) 推荐(2)
摘要:模式简介 为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层的接口,这个接口使得这一子系统更加容易使用。 将一个系统拆分成若干个子系统,有利于子系统具有较强地可重用性,也更容易对子系统进行定制。但是与此同时增加了系统的复杂度,外观模式为子系统中较为通用的操作提供了一个简单的接口。 阅读全文
posted @ 2018-06-11 21:49 Answer.Geng 阅读(540) 评论(0) 推荐(0)
摘要:模式简介 动态地给一个对象添加一些额外的职责。就增加功能来说,Decorator模式相比生成子类更为灵活。 装饰者模式又叫包装器模式(Wrapper),它是一种结构型模式。如果一定要一句话或者一件事物来形容,我觉得使用下图来表示这种结构再合适不过了。没错,装饰者模式就是在鸡排上面放一层生菜,生菜上面 阅读全文
posted @ 2018-06-11 14:28 Answer.Geng 阅读(650) 评论(0) 推荐(1)
摘要:模式简介 将对象组合成树形结构以表示“部分 整体”的层次结构,Composite使得用户对单个对象和组合对象的使用具有一致性。 Composite模式的定义中有两个关键词: 树形结构 和 一致性 。作为一种结构型模式,Composite模式适用于处理树形结构的问题。其次,对于客户端来说,用户使用这个 阅读全文
posted @ 2018-06-08 15:23 Answer.Geng 阅读(625) 评论(0) 推荐(0)
摘要:模式简介 将抽象部分与它的实现相分离,使它们都可以独立地变化。 桥接模式是一种结构型模式,又称柄体模式(Handle and Body)或接口模式(Interface)。 想象下面这幅图,由英文字母组成,每个字母可以有不同的颜色。 在控制台中输出以上内容,想想我们该怎样进行设计? 方案一:为每个字母 阅读全文
posted @ 2018-06-06 16:08 Answer.Geng 阅读(645) 评论(1) 推荐(0)