随笔分类 - 嵌入式开发 / 04. 设计模式
摘要:一、访问者模式 访问者模式(Visitor Pattern)是一种将数据操作与数据结构分离的设计模式,可以在不修改数据结构的前提下增加新的操作。访问者模式的核心思想是将数据结构中的元素操作分离出来,封装在单独的访问者对象中。这样,当需要添加新的操作时,只需要创建新的访问者类,而无需修改原有的数据结构
阅读全文
摘要:一、模板方法模式 模板方法模式(Template Method Pattern)中定义一个操作中算法的框架,而将一些步骤延迟到子类中。模板方法模式使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。模板方法模式在其结构中只存在父类与子类之间的继承关系。 通过使用模板方法模式,可以将一些复
阅读全文
摘要:一、策略模式 在策略模式(Strategy Pattern)中,定义一系列算法类,将每一个算法封装起来,并让它们可以相互替换。策略模式让算法独立于使用它的客户而变化,也称为政策模式(Policy)。在这里,每个封装算法的类都可以称之为一种策略(Strategy)。为了保证这些策略在使用时具有一致性,
阅读全文
摘要:一、状态模式 状态模式(State Pattern)是设计模式中的一种,属于行为模式。它允许一个对象在其内部状态发生改变时改变它的行为,使其看起来像是修改了其类。状态模式主要解决的是当控制一个对象状态的条件表达式过于复杂时的情况。通过把状态的判断逻辑转移到表示不同状态的一系列类中,状态模式可以简化复
阅读全文
摘要:一、观察者模式 观察者模式(Observer Pattern)定义对象之间的一种一对多依赖关系,使得每当一个对象状态发生改变时,其相关依赖对象皆得到通知并被自动更新。观察者模式的别名包括 发布-订阅模式(Publish/Subscribe)、模型-视图模式(Model/View)、源-监听器模式(S
阅读全文
摘要:一、备忘录模式 在实现撤销时,首先必须保存软件系统的历史状态。当用户需要取消错误操作并且返回到某个历史状态时,可以取出事先保存的历史状态来覆盖当前状态。备忘录模式提供了一种状态恢复的实现机制,使得用户可以方便地回到一个特定的历史步骤。当新的状态无效或者存在问题时,可以使用暂时存储起来的备忘录将状态复
阅读全文
摘要:一、中介者模式 如果在一个系统中对象之间的联系呈现为网状结构。对象之间存在大量的多对多联系,将导致系统非常复杂,这些对象既会影响别的对象,也会被别的对象所影响。在网状结构中,几乎每个对象都需要与其他对象发生相互作用,而这种相互作用表现为一个对象与另外一个对象的直接耦合,这将导致一个过度耦合的系统。
阅读全文
摘要:一、迭代器模式 在软件开发时,经常需要使用聚合对象来存储一系列数据。聚合对象拥有两个职责:一是 存储数据;二是 遍历数据。从依赖性来看,前者是聚合对象的基本职责;而后者既是可变化的,又是可分离的。因此,可以将遍历数据的行为从聚合对象中分离出来,封装在一个被称之为 “迭代器” 的对象中。由迭代器来提供
阅读全文
摘要:一、解释器模式 解释器模式(Interpreter Pattern)描述如何使用面向对象语言构成一个简单的语言解释器。在某些情况下,为了更好地描述某些特定类型的问题,可以创建一种新的语言。这种语言拥有自己的表达式和结构,即文法规则,这些问题的实例将对应为该语言中的句子。此时,可以使用解释器模式来设计
阅读全文
摘要:一、命令模式 命令模式(Command Pattern)是一种行为设计模式,它将请求封装为对象,从而让你使用不同的请求把客户端与请求的处理逻辑分开。这种类型的设计模式属于行为模式。在命令模式中,一个命令对象封装了与一个特定的接收者对象相关的请求,并可以在任何时候被执行。命令模式可以将请求发送者和接收
阅读全文
摘要:一、职责链模式 职责链模式(Chain of Responsibility Pattern)是一种设计模式,用于将请求的发送者和接收者解耦。在职责链模式中,多个对象都有机会处理请求,将这些对象连成一条链,并沿着这条链传递请求,直到有一个对象处理它为止。 职责链模式主要包含如下角色: 抽象处理者(Ha
阅读全文
摘要:一、代理模式 代理模式(Proxy Pattern)是一种设计模式,它为其他对象提供一种代理以控制对这个对象的访问。这种类型的设计模式属于结构型模式。在代理模式中,我们创建一个代理对象,该对象控制对原始对象的访问。代理对象在客户端和原始对象之间起到中介的作用。代理模式允许我们在不修改原始对象代码的情
阅读全文
摘要:一、享元模式 享元模式(Flyweight Pattern)运用共享技术有效地支持大量细粒度对象的复用。系统只使用少量的对象,而这些对象都很相似,状态变化很小,可以实现对象的多次复用。由于享元模式要求能够共享的对象必须是细粒度对象,因此它又称为轻量级模式,是一种对象结构型模式。 享元模式通过共享技术
阅读全文
摘要:一、外观模式 根据单一职责原则,在软件中将一个系统划分为若干个子系统(Subsystem)有利于降低整个系统的复杂性。一个常见的设计目标是使客户类与子系统之间的通信和相互依赖关系达到最小,而达到该目标的途径之一就是引入一个外观角色(Facade),它为子系统的访问提供了一个简单而单一的入口。外观模式
阅读全文
摘要:一、装饰模式 装饰模式(Decorator Pattern),也叫包装器模式(Wrapper Pattern),是一种设计模式。它可以在不改变一个对象本身功能的基础上,动态地给该对象增加一些额外的功能或职责。 装饰模式是一个通过组合的方式替代继承的技术,它通过一种无须定义子类的方式来给对象动态增加职
阅读全文
摘要:一、组合模式 对于树形结构,当容器对象的某一个方法被调用时,将遍历整个树形结构,寻找也包含这个方法的成员对象(可以是容器对象,也可以是叶子对象)并调用执行,牵一而动百,其中使用了递归调用的机制来对整个结构进行处理。由于容器对象和叶子对象在功能上的区别,在使用这些对象的代码中必须有区别地对待容器对象和
阅读全文
摘要:一、桥接模式 桥接模式 (Bridge Pattern)是一种对象结构型模式,又称为 柄体模式(Handle and Body)或 接口模式(Interface)。它将 抽象部分 与它的 实现部分 分离,使它们都可以独立地变化。桥接模式的核心逻辑是,通过抽象类和实现类之间的聚合关系,将两者解耦,从而
阅读全文
摘要:一、适配器模式 在适配器模式(Adapter Pattern)中引入了一个被称为适配器(Adapter)的包装类,而它所包装的对象称为适配者(Adaptee),即被适配的类。适配器的实现就是把客户类的请求转化为对适配者的相应接口的调用,而无须修改原来的适配者接口和抽象目标类接口。也就是说:当客户类调
阅读全文
摘要:一、建造者模式 建造者模式(Builder Pattern)是较为复杂的创建型模式,它将客户端与包含多个组成部分(或部件)的复杂对象的创建过程分离,使得同样的构建过程可以创建不同的表示。客户端无须知道复杂对象的内部组成部分与装配方式,只需要知道所需的建造者类型即可。建造者模式关注如何一步一步地创建一
阅读全文
摘要:一、原型模式 在设计模式中也存在一个类似的模式,可以通过一个原型对象克隆出多个一模一样的对象,该模式被称为 原型模式。 原型模式(Prototype Pattern)是一种创建型设计模式,它允许通过复制(或克隆)一个已经存在的对象来创建新的对象,而无需重新实例化或重新配置。在使用原型模式时,需要首先
阅读全文

浙公网安备 33010602011771号