摘要:
前言 命令模式,对象行为型模式的一种。它帮助我们将功能的调用者与实现者之间解耦(甚至完全解耦)。调用者与实现者之间并不是直接引用关系,调用者只需要知道如何发送当前功能的请求即可,而不用关心该请求由谁在何时完成。 “ 将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请 阅读全文
摘要:
前言 职责链模式,属于对象行为型模式。你可以想象成有一排人等着帮你处理问题,你只需要将你的问题告诉第一个人然后等待结果即可。如果第一个人处理不了这个问题,他会将这个问题告诉第二个人,以此类推。但并不意味着你的问题一定会被解决。 “ 它的目的是使多个对象都有机会处理请求,从而避免请求的发送者和接收者之 阅读全文
摘要:
前言 代理模式,属于对象结构型模式。在《设计模式 - 可复用的面向对象软件》一书中将之描述为“ 为其它对象提供一种代理以控制对这个对象的访问 ”。 在代理模式中,通常使用一个类来代表另一个类的功能,并由这个代理对象去控制原对象的引用。 结构 Subjuet(公共接口):代理类和被代理类的公共接口,保 阅读全文
摘要:
摘要 享元模式,对象结构型模式的一种。在《设计模式 - 可复用的面向对象软件》一书中将之描述为“ 运用共享技术有效地支持大量细粒度的对象 ”。 在享元模式中,通过工厂方法去统一管理一个对象的创建,在创建对象前会尝试复用工厂类中缓存的已创建对象,如果未找到可重用的对象则创建新的对象实例并将其缓存。以此 阅读全文
摘要:
前言 外观模式,又称门面模式,对象结构型模式。在《设计模式 - 可复用的面向对象软件》一书中将之描述为“ 为系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用 ”。 模式 需要角色如下: Facade(门面):子系统为外部提供的入库,负责将外部 阅读全文
摘要:
前言 装饰模式,属于对象结构型模式。在《设计模式 - 可复用的面向对象软件》一书中将之描述为“ 动态地给一个对象添加一些额外的职责。就增加功能来说,Decorator模式相比生成子类更为灵活”。 我理解的装饰模式就是对现有类的包装,在不对现有类做出修改的前提下为其临时扩展额外的功能。就像套娃一样,在 阅读全文
摘要:
前言 组合模式,类结构模式的一种。在《设计模式 - 可复用的面向对象软件》一书中将之描述为“ 将对象组合成树状结构以表示 “部分-整体” 的层次结构,使得用户对单个对象和组合对象的使用具有一致性 ”。 工作中我们经常会接触到一个对象中包含0个或多个其它对象,而其它对象依然包含0个或多个其它对象,这种 阅读全文
摘要:
前言 桥接模式,类结构型模式的一种。在《设计模式 - 可复用的面向对象软件》一书中将之描述为“ 将抽象部分与它的实现部分分离,使它们都可以独立的变化 ”。 桥接模式可以帮助我们解决那些因为多层次的继承导致的类的个数急剧增加的问题。将抽象与实现的分离提高了类的复用性,同时也保证了各部分的独立性,方便后 阅读全文
摘要:
前言 适配器,属于类结构型模式。《设计模式 - 可复用的面向对象软件》一书中将之描述为“ 将一个类的接口转换成客户希望的另一个接口,使得原本由于接口不兼容而不能一起工作的那些类可以一起工作 ”。 在日常生活中,我们经常遇到“不兼容”的情况。比如充电器的插头与插座不兼容,手机的接口与电脑的接口兼容等等 阅读全文
摘要:
前言 单件又名单例,五种创建模式中的一种。《设计模式 - 可复用的面向对象软件》一书中将之描述为“ 保证一个类仅有一个实例,并提供一个访问它的全局访问点 ”。 单件模式一般在一个类只需要一个实例时使用。比如为了保证原型管理器只存在一个实例,可以将原型管理器设计成一个单件(二十三种设计模式[4] - 阅读全文