摘要: 对于那些存在对象之间复杂交互关系的系统,中介者模式提供了一种简化复杂交互的解决方案,即通过引入一个中介者,将原本对象之间的两两交互转化为每个对象与中介者之间的交互 模式动机 以微信聊天为例,可以用户与用户直接聊天,也可以通过微信群聊天。前者的话,用户要和别的用户加为好友,即用户和用户之间存在多对多关 阅读全文
posted @ 2020-05-27 12:51 低吟不作语 阅读(665) 评论(0) 推荐(0) 编辑
摘要: 迭代器模式是一种使用频率非常高的设计模式,迭代器用于对一个聚合对象进行遍历。通过引入迭代器可以将数据的遍历功能从聚合对象中分离出来,聚合对象只负责存储数据,聚合对象只负责存储数据,而遍历数据由迭代器来完成。 模式动机 一个聚合对象,如一个列表(List)或者一个集合(Set),应该提供一种方法来让别 阅读全文
posted @ 2020-05-25 15:57 低吟不作语 阅读(554) 评论(0) 推荐(1) 编辑
摘要: 解释器是一种不常使用的设计模式,它用于描述如何构成一个简单的语言解释器,主要应用于使用面向对象语言开发的编译器和解释器设计。当我们需要开发一个新的语言时,可以考虑使用解释器模式 模式动机 如果在系统中某一特定类型的问题发生的频率很高,此时可以考虑将这些问题的实例表述为一个语言中的句子。再构建一个解释 阅读全文
posted @ 2020-05-23 20:29 低吟不作语 阅读(481) 评论(0) 推荐(1) 编辑
摘要: 命令模式将请求发送者与请求接收者解耦,在发送者与接收者之间引入命令对象,将发送者的请求封装在命令对象中,请求发送者通过命令对象来间接引用接收者,使得系统具有更好的灵活性,用户可以根据需要为请求发送者增加新的命令对象而无须修改原有系统 模式动机 举个现实生活中的例子,开关是请求的发送者,电灯是请求的接 阅读全文
posted @ 2020-05-18 17:08 低吟不作语 阅读(577) 评论(0) 推荐(1) 编辑
摘要: 系统中如果存在多个对象可以处理一个同一请求,可以通过职责链模式将这些处理请求的对象连成一条链,让请求沿着该链进行传递。如果链上的对象可以处理该请求则进行处理,否则将请求转发给下家处理 模式动机 很多情况下,可以处理某个请求的对象不止一个,如大学里的奖学金审批,学生先向辅导员提交审批表,辅导员签字审批 阅读全文
posted @ 2020-05-16 17:25 低吟不作语 阅读(530) 评论(0) 推荐(0) 编辑
摘要: 当直接访问某些对象存在问题时,可以通过一个代理对象来间接访问,为了保证客户端使用的透明性,所访问的真实对象与代理对象需要实现相同的接口。 模式动机 某些情况下,一个客户不想或不能直接引用一个对象,此时可以通过一个称之为代理的第三者实现间接引用。代理对象在客户端和目标对象之间起到中介作用,并且可以通过 阅读全文
posted @ 2020-05-14 22:41 低吟不作语 阅读(746) 评论(0) 推荐(0) 编辑
摘要: 当系统中存在大量相同或相似的对象时,享元模式是一种较好的解决方案,它通过共享技术实现相同或相似的细粒度对象的复用,从而节约内存空间。享元模式提供了一个享元池用于存储已经创建好的享元对象,并通过享元工厂类将享元对象提供给客户端使用。 模式动机 使用面向对象技术开发时,很多情况下需要在系统中增加类和对象 阅读全文
posted @ 2020-05-09 18:02 低吟不作语 阅读(547) 评论(0) 推荐(1) 编辑
摘要: 外观模式是一种使用频率非常高,但理解较为简单的设计模式,通过引入一个外观角色来简化客户端与子系统之间的操作,为复杂的子系统调用提供一个统一的入口,使子系统与客户端的耦合度降低,且客户端调用非常方便。 模式动机 在大多数情况下,一个网站都会提供一个网站首页。网站首页一般作为整个网站的入口,提供了通往各 阅读全文
posted @ 2020-05-02 15:25 低吟不作语 阅读(447) 评论(0) 推荐(1) 编辑
摘要: 装饰者模式是一种用于替代继承的技术,它通过一种无须定义子类的方式给对象动态增加职责,使对象之间的关联关系取代类之间的继承关系。 模式动机 装饰者可以在不改变一个对象本身的基础上给对象增加额外的新行为,如一张照片,可以不改变照片本身,给她增加一个相框,使得它具有防潮功能,而且用户可以根据需要增加不同类 阅读全文
posted @ 2020-05-01 13:42 低吟不作语 阅读(703) 评论(2) 推荐(0) 编辑
摘要: 组合模式关注那些存在于叶子构件和容器构件的结构以及它们的组织形式,叶子构件中不能包含成员对象,容器构件中可以包含成员对象,这些成员对象可能是叶子构件对象,也可能是容器构件对象。这些对象可以构成一个树形结构,组合模式是用面向对象的方法处理树形结构。 模式动机 在Windows操作系统的文件目录结构包含 阅读全文
posted @ 2020-03-16 14:41 低吟不作语 阅读(556) 评论(0) 推荐(0) 编辑