首页 > 其他分享 > 软考上午05设计模式-行为型

软考上午05设计模式-行为型

时间:2023-10-27 18:33:57浏览次数:40  
标签:状态 请求 05 对象 软考 模式 意图 一个 设计模式

责任链模式:

  意图:使多个对象都有机会处理请求,避免请求的发送者和接受者有耦合关系。将这些对象连成一条链

  适用:多个的对象可以处理一个请求,具体哪个处理在运行时确定

      在不明确指明接收者的情况下向多个对象中的一个提交请求

      可处理一个请求的对象集合应被动态指定

命令模式:

  意图:将请求封装为一个对象使得可以用不同的请求对客户进行参数化;对请求排队或记录请求日志,支持可撤销的操作

  适用:抽象出待执行的动作以参数化某对象

      在不同的时刻指定、排列和执行请求

      支持取消操作

      支持修改日志

解释器模式:

  意图:使用该表示来解释语言中的句子

  适用:(1)该文法简单。(2)效率不是一个关键问题。

      当有一个语言需要解释执行,并且可以将该语言中的句子表示为一个抽象语法树时

迭代器模式:

  意图:提供一种方法顺序访问一个聚合对象中的各个元素,且不需要暴漏该对象的内部表示

  适用:

中介者模式:

  意图:用一个中介对象来封装一系列的对象交互,使各对象不需要显式的引用,使耦合松散,独立地改变他们之间的交互

  适用:一组对象以定义良好但是复杂的方式通信,产生的相互依赖关系结构混乱难以理解

      一个对象引用其他很多对象直接通信,导致难以复用

      定制一个分布在多个类中的行为,又不想产生太多子类

备忘录模式:

   意图:在不破坏封装性的前提下捕获一个对象的内部状态,在对象之外保存这个状态。这样之后就可以恢复到这个状态

   适用:必须保存一个对象在某一时刻的状态,这样以后需要的时候就可以恢复到先前状态,

观察者模式:

   意图:定义对象之间一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖与它的对象都会得到通知并被自动通知

状态模式:

  意图:允许一个对象在其内部状态改变时改变它的行为,对象看起来似乎改变了它的类

  适用:一个对象的行为决定于它的状态,并且它必须时刻运行根据状态改变它的行为

      一个操作中含有庞大的分支语句。且这些分支依赖于该对象的状态,这个状态常用一个或多个枚举常量表示

标签:状态,请求,05,对象,软考,模式,意图,一个,设计模式
From: https://www.cnblogs.com/kun1790051360/p/17788679.html

相关文章

  • 软考系列(系统架构师)- 2013年系统架构师软考案例分析考点
    试题一软件架构(根据描述填表、ESB定义和功能)【问题1】(10分)服务建模是对RampCoordination信息系统进行集成的首要工作,公司的架构师首先对RampCoordination信息系统进行服务建模,识别出系统中的两个主要业务服务组件:(1)RampControl:负责RampCoordination信息系统中相关各种......
  • 设计模式-策略模式
    参考:https://blog.51cto.com/u_16125162/6329805定义:策略模式(StrategyPattern):定义一系列算法,将每一个算法封装起来,并让它们可以相互替换。是一种对象行为型模式。打个比方说,我们出门的时候会选择不同的出行方式,比如骑自行车、坐公交、坐火车、坐飞机、坐火箭等等,这些出行方......
  • SP10570 LONGCS - Longest Common Substring
    SP10570LONGCS-LongestCommonSubstring更好的阅读体验提供一个后缀数组解法。多字符串,中间加分隔符然后后缀排序求出\(sa\)和\(height\)。把每个字符串对应的位置染上颜色,问题变为寻找\(i,j\)使得区间\([i,j]\)包含\(n\)种颜色并且\(\min_{k=i+1}^{j}height_k\)......
  • 2059:【例3.11】买笔
    2059:【例3.11】买笔时间限制:1000ms      内存限制:65536KB提交数:50326   通过数:26989【题目描述】期末来临了,班长小Q决定将剩余班费xx元钱,用于购买若干支钢笔奖励给一些学习好、表现好的同学。已知商店里有三种钢笔,它们的单价为66元、55元和44元。小Q......
  • 05前端开发js
    运算符#1.算术运算符varx=10;varres1=x++;'先赋值后自增1'x先赋值给res1,让res变成10,x变成12varres2=++x;'先自增1后赋值'x还是10,x加了2次后赋值给res2,res2变成12#2.比较运算符弱等于:自动转换类型'5'==5'结果是true#js会自动转换成相同数据类......
  • 【编程开发指南】「设计模式系列」一起来学编程界的“兵法”设计模式(序章)
    设计模式是什么设计模式是一种被广泛应用于软件开发中的技术,它可以帮助开发人员更好地组织和管理代码,提高代码的可读性和可维护性。本文将介绍设计模式的概念、分类和应用场景。设计模式的概念设计模式是一种被反复使用的代码设计经验,它可以解决特定问题的通用解决方案。设计模式不......
  • 【软考高项】项目进度管理
    ......
  • 软考系列(系统架构师)- 2014年系统架构师软考案例分析考点
    试题一软件架构(MYC架构、扩展接口模式)MVC架构风格最初是Smalltalk-80中用来构建用户界面时采用的架构设计风格。其中M代表模型(Model),V代表视图(View),C代表控制器(Controller)。在该风格中,模型表示待展示的对象,视图表示模型的展示,控制器负责把用户的动作转成针对模型的操作。模......
  • P4678 [BalticOI 2005] Bus Trip 题解
    P4678[BalticOI2005]BusTrip题解(RE:题解再改造!!)贴码#include<bits/stdc++.h>#defineMAXN500010usingnamespacestd;//ifstreamis("trip.in",ios::in);//ofstreamos("trip.out",ios::out);//#definecinis//#definecoutosintn,m,p,t,tote......
  • 【软考高项】项目立项管理
    项目立项需要三个步骤:1)项目建议与立项申请2)项目可行性研究3)项目评估与决策每一个步骤都需要写一些文档,然后将文档送到下一个部门审核或审批,审批通过的话,就把提交的文档与审批文件一起作为下一个步骤的输入。......