用.net做的网站,电子商务网站开发需求文档,上海最近热点事件,seo外包服务优化接前一篇文章#xff1a;软考 系统架构设计师系列知识点之设计模式#xff08;3#xff09; 所属章节#xff1a;
老版#xff08;第一版#xff09;教材
第7章. 设计模式 第2节. 设计模式实例 3. 行为型模式
行为型模式可以影响一个系统的状态和行为流。通过优化状态…接前一篇文章软考 系统架构设计师系列知识点之设计模式3 所属章节
老版第一版教材
第7章. 设计模式 第2节. 设计模式实例 3. 行为型模式
行为型模式可以影响一个系统的状态和行为流。通过优化状态和行为流转换和修改的方式可以简化、优化并且提高应用程序的可维护性。行为型模式包括
Chain of ResponsibilityCommandInterpreterIteratorMediatorMementoObserverStateStrategyTemplate MethodVisitor
1Chain of Responsibility责任链模式
Chain of Responsibility模式可以在系统中建立一个链这样消息可以在首先接收到它的级别被处理或者可以定位到可以处理它的对象。
一句话概括责任链模式为解除请求的发送者和接收者之间的耦合而使多个对象都有机会处理这个请求。将这些对象连成一个链并沿着这条链接传递该请求直到有一个对象处理它。
Chain of Responsibility模式的优点如下
降低了耦合度。增加向对象指定责任的灵活性。由于在一个类中产生的事件可以被发送到组成中的其它类处理器上类的集合可以作为一个整体。
在以下情况中应该使用Chain of Responsibility模式
多个对象可以处理一个请求而其处理器却是未知的。想要在不指定确切的请求接收对象的情况下向几个对象中的一个发送请求。可以动态地指定能够处理请求的对象集。
2Command命令模式
Command模式在对象中封装了请求这样就可以保存命令将该命令传递给方法以及像任何其它对象一样返回该命令。
一句话概括Command模式将一个请求封装为一个对象从而可用不同的请求对客户进行参数化将请求排队或记录请求日志支持可撤销的操作。
Command模式的优点如下
将调用操作的对象与知道如何完成该操作的对象相分离。更容易添加新命令因为不用修改已有类。
在以下情况中应该使用Command模式
想要通过要执行的动作来参数化对象。要在不同的时间指定、排序以及执行请求。必须支持Undo、日志记录或事务。
3Interpreter解释器模式
Interpreter模式可以解释定义其语法表示的语言还提供了用表示来解释语言中的语句的解释器。
一句话概括解释器模式描述了如何为语言定义一个文法如何在该语言中表示一个句子以及如何解释这些句子。
Interpreter模式的优点如下
容易修改并扩展语法。更容易实现语法。
在以下情况中应该使用Interpreter模式
语言的语法比较简单。效率并不是最主要的问题。
4Iterator迭代器模式
Iterator模式为集合中的有序访问提供了一致的方法而该集合是独立于基础集合、并与之相分离的。
Iterator模式的优点如下
支持集合的不同遍历。简化了集合的接口。
在以下情况中应该使用Iterator模式
在不开放集合对象内部表示的前提下访问集合对象内容。支持集合对象的多重遍历。为遍历集合中的不同结构提供了统一的接口。
5Mediator中介者模式
Mediator模式通过引入一个能够管理对象间消息分布的对象简化了系统中对象间的通信。该模式可以减少对象之间的相互引用从而提高了对象间的共耦合度并且它还可以独立地改变其间的交互。
一句话概括中介者模式用一个中介对象封装一系列的对象交互。中介者使用各对象不需要显式的相互调用从而使其耦合松散。
Mediator模式的优点如下
去除对象间的影响。简化了对象间协议。集中化了控制。由于不再需要直接互传消息单个组件变得更加简单而且容易处理。由于不再需要包含逻辑来处理组件间的通信组件变得更加通用。
在以下情况中应该使用Mediator模式
对象集合需要以一个定义规范但复杂的方式进行通信。想要在不使用子类的情况下自定义分布在几个对象之间的行为。
6Memento模式
Memento模式可以保持对象状态的“快照snapshot”这样对象可以在不向外界公开其内容的情况下返回到它的最初状态。
Memento模式的优点如下
保持封装的完整。简化了返回到初始状态所需的操作。
在以下情况中应该使用Memento模式
必须保存对象状态的快照这样以后就可以恢复状态。使用直接接口来获得状态可能会公开对象的细节从而破坏对象的封装性。