摘要: 观察者模式(Observer Pattern) 1.模式动机 建立一种对象与对象之间的依赖关系,一个对象发生改变时将自动通知其他对象,其他对象将相应做出反应。在此,发生改变的对象称为观察目标,而被通知的对象称为观察者,一个观察目标可以对应多个观察者,而且这些观察者之间没有相互联系,可以根据需要增加和 阅读全文
posted @ 2020-10-26 13:24 SSunSShine 阅读(194) 评论(0) 推荐(0) 编辑
摘要: 中介者模式(Mediator Pattern) 1.模式动机 在用户与用户直接聊天的设计方案中,用户对象之间存在很强的关联性,将导致系统出现如下问题: 系统结构复杂:对象之间存在大量的相互关联和调用,若有一个对象发生变化,则需要跟踪和该对象关联的其他所有对象,并进行适当处理。 对象可重用性差:由于一 阅读全文
posted @ 2020-10-26 13:09 SSunSShine 阅读(202) 评论(0) 推荐(0) 编辑
摘要: 命令模式(Command Pattern) 1.模式动机 在软件设计中,我们经常需要向某些对象发送请求,但是并不知道请求的接收者是谁,也不知道被请求的操作是哪个,我们只需在程序运行时指定具体的请求接收者即可,此时,可以使用命令模式来进行设计,使得请求发送者与请求接收者消除彼此之间的耦合,让对象之间的 阅读全文
posted @ 2020-10-26 11:38 SSunSShine 阅读(663) 评论(0) 推荐(0) 编辑
摘要: 代理模式(Proxy Pattern) 1.模式动机 在某些情况下,一个客户不想或者不能直接引用一个对 象,此时可以通过一个称之为“代理”的第三者来实现 间接引用。代理对象可以在客户端和目标对象之间起到 中介的作用,并且可以通过代理对象去掉客户不能看到 的内容和服务或者添加客户需要的额外服务。 通过 阅读全文
posted @ 2020-10-26 11:25 SSunSShine 阅读(151) 评论(0) 推荐(0) 编辑
摘要: 享元模式(Flyweight Pattern) 1.模式动机 面向对象技术可以很好地解决一些灵活性或可扩展性问题,但在很多情况下需要在系统中增加类和对象的个数。当对象数量太多时,将导致运行代价过高,带来性能下降等问题。 享元模式正是为解决这一类问题而诞生的。享元模式通过共享技术实现相同或相似对象的重 阅读全文
posted @ 2020-10-25 14:22 SSunSShine 阅读(125) 评论(0) 推荐(0) 编辑
摘要: 外观模式(Facade Pattern) 1.模式定义 外观模式(Facade Pattern):外部与一个子系统的通信必须通过一个统一的外观对象进行,为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。外观模式又称为门面模式,它是一种对象结构型模 阅读全文
posted @ 2020-10-25 14:12 SSunSShine 阅读(162) 评论(0) 推荐(0) 编辑
摘要: 装饰器模式(Decorator Pattern) 1.模式动机 一般有两种方式可以实现给一个类或对象增加行为: 继承机制,使用继承机制是给现有类添加功能的一种有效途径,通过继承一个现有类可以使得子类在拥有自身方法的同时还拥有父类的方法。但是这种方法是静态的,用户不能控制增加行为的方式和时机。 关联机 阅读全文
posted @ 2020-10-25 13:57 SSunSShine 阅读(159) 评论(0) 推荐(0) 编辑
摘要: 桥接模式(Bridge Pattern) 1.模式动机 设想如果要绘制矩形、圆形、椭圆、正方形,我们至少需要4个形状类,但是如果绘制的图形需要具有不同的颜色,如红色、绿色、蓝色等,此时至少有如下两种设计方案: 第一种设计方案是为每一种形状都提供一套各种颜色的版本。 第二种设计方案是根据实际需要对形状 阅读全文
posted @ 2020-10-24 22:58 SSunSShine 阅读(183) 评论(0) 推荐(0) 编辑
摘要: 适配器模式(Adapter Pattern) 1.模式动机 在软件开发中采用类似于电源适配器的设计和编码技巧被称为适配器模式。 通常情况下,客户端可以通过目标类的接口访问它所提供的服务。有时,现有的类可以满足客户类的功能需要,但是它所提供的接口不一定是客户类所期望的,这可能是因为现有类中方法名与目标 阅读全文
posted @ 2020-10-24 22:18 SSunSShine 阅读(147) 评论(0) 推荐(0) 编辑
摘要: 单例模式(Singleton Pattern) 1.模式动机 对于系统中的某些类来说,只有一个实例很重要,例如,一个系统中可以存在多个打印任务,但是只能有一个正在工作的任务;一个系统只能有一个窗口管理器或文件系统;一个系统只能有一个计时工具或ID(序号)生成器。 如何保证一个类只有一个实例并且这个实 阅读全文
posted @ 2020-10-24 22:04 SSunSShine 阅读(102) 评论(0) 推荐(0) 编辑