![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
严文文-Chris
这个作者很懒,什么都没留下…
展开
-
行为型模式-命令模式
将一个 请求封装为一个 对象,可以使用不同的请求进行参数化;对请求排队或者记录请求日志以及 支持可撤销的操作。别名动作模式或事务模式在命令模式中,将一个请求封装为一个对象,从而使我们可用不同的请求对客户进行参数化;对请求排队或者记录请求日志,以及支持可撤销的操作。命令模式是一种对象行为型模式,其别名为动作模式或事务模式。命令模式包含四个角色:抽象命令类中声明了用于执行请求的execute()等方法,通过这些方法可以调用请求接收者的相关操作;原创 2023-11-08 16:53:35 · 563 阅读 · 0 评论 -
类之间关系
类之间的关系 1、种类:Generalization(泛化) ,Dependency(依赖关系)、Association(关联关系)、Aggregation(聚合关系)、Composition(组合关系) 注意:聚合关系,组合关系属于关联关系,是特殊的关联关系 2、泛化表现为继承和实现关系(is a),具体形式是类与类之间的继承关系,接口与接口之间的继承关系,类对接口的实现关系 3、关联关系(ha...原创 2018-02-16 19:27:09 · 241 阅读 · 15 评论 -
二次见面,请多指教!
软件工程 What软件工程:是一门建立在系统化,规范化,数量化等工程原则和方法上的,关于软件卡发的各个阶段的定义,任务和作用的工程学科。主要包括两方面:软件开发技术和如软件项目管理。 How软件工程开发需要时间,官称:软件工程的生命周期分别是需求捕获、系统分析与设计、系统实现、测试与维护 建模 what系统分析与设计最重要的是什么?建原创 2017-08-01 16:16:15 · 304 阅读 · 18 评论 -
UML,似曾相识(一)
What UML是一种面向对象的建模语言什么是面向对象语言呢?面向对象语言就是支持面向对象的程序设计的语言,如:c++,java、objectpascal等。一切操作都以对象为基础,是由面向过程语言发展而来的。 现实世界中的对象均有属性和行为,映射到计算机程序上,属性则表示对象的数据,行为表示对象的方法(其作用是处理数据或同外界交互)。 UML组成由视图原创 2017-08-01 16:20:43 · 320 阅读 · 25 评论 -
软件开发环境
想做出一款好软件,前提是软件开发环境,他有各阶段分散工具和软件开发环境SED,SED的特点是紧密性,可适应性,可移植性。工具集和集成机制构成了SED,集成机智的可信是环境信息库。把SED分成四类:模型,结构,范围,开发阶段。结构有单体性,协同性,分散性,并发性等。范围主要是通用型和专用型。开发阶段包含前端开发,后端开发,软件维护,逆向工程等。原创 2016-11-29 18:41:48 · 878 阅读 · 32 评论 -
部署图
部署图描述的是系统运行时的结构,展示了硬件的配置及其软件如何部署到网络结构中。一个系统模型只有一个部署图。】】gram Elements)1.结点(Node) 结点是存在与运行时的代表计算机资源的物理元素,可以是硬件也可以是运行其上的软件系统 例子: processor 处理器 是任何具有处理功能的机器 eg:服务器 工作站 等原创 2017-03-26 23:41:39 · 721 阅读 · 28 评论 -
软件过程模型
软件过程模型主要有以下五种:瀑布模型,螺旋模型,喷泉模型,增量模型,基于四代技术模型 瀑布模型的优点:需求明确,有评审和文档控制,便于分工协作,适合整体开发。缺点:不适用于需求不清楚,变动大的项目,而且他察觉问题玩,次序固定。 螺旋模型的特点:细化螺旋周期,含有风险分析,强调判断,目标,重视软件质量,重视维护她的卡法划分为:制定计划,风险分析,实施原创 2016-12-01 11:00:50 · 1231 阅读 · 31 评论 -
系统开发生命周期
首先讲讲什么是系统开发生命周期,首先它是一个系统建立的过程,其次它是由系统分析员,软件工程师,程序员和用户共同建立的。此过程分六个部分,每部分环环相扣,联系紧密,所以实际进行软件开发项目时一定要耐心的做好每一步。第一:问题及规划她的作用是制定长期技术战略第二:需求分析主要解决该系统“做什么”的问题。这是用户和软件分析人员共同参与的阶段,此阶段一定要详细分析问题,弄清顾客的真正需原创 2016-11-27 17:06:48 · 3572 阅读 · 29 评论 -
Enterprise Architect学习笔记-EA中关系
Enterprise Architect中定义的关系主要有一下几种:●Associate(关联):类之间有关联,通常是作为变量存在;●Aggregate(聚合):类A包含类B或由类B组成;●Compose(组合):类A是由其他类组成;●Dependency(依赖):类A需要类B的协助,类B变化会影响类A,反过来不成立;●Generalize(泛化):一般到具体的关系;●Re原创 2018-01-14 20:40:12 · 2179 阅读 · 7 评论 -
用例视图
用例视图 What 是什么? 描述系统做什么 构成 角色(Actor)、用例(Use Case)、关系 辨别 角色:使用系统功能的外部用户或系统(角色间存在泛化关系) 用例:是对包括变量在内的一组动作序列的描述。(是角色想要系统做的事) 关系:泛化原创 2017-03-12 23:40:57 · 471 阅读 · 21 评论 -
软件设计基础
软件设计基础注重设计二字,这个阶段设计出符合需求的模型。 设计的种类主要包括体系结构,数据设计,接口设计,模块机设计。他们包含在概要设计和详细设计两个阶段里,概要设计会把需求转化为体系结构,然后设计出程序,数据库,文件和类。详细设计会长在结构和算法上更加精细。 这里要强调结构设计。每个结构都有不同的适用范围。比如仓库模型,主要存储共享资源。分布式结构和仓库模原创 2016-11-29 18:37:00 · 727 阅读 · 25 评论 -
模块间的耦合
模块间的耦合耦合性(Coupling),也叫耦合度,是对模块间关联程度的度量。耦合的强弱取决于1.模块间接口的复杂2.调用模块的方式3.通过界面传送数据的多少。模块间的耦合度是指模块之间的依赖关系,包括控制关系、调用关系、数据传递关系。模块间联系越多,其耦合性越强,同时表明其独立性越差。软件设计中通常用耦合度和内聚度作为衡量模块独立程度的标准。划分模块的一个准则原创 2016-11-08 21:30:20 · 2143 阅读 · 16 评论 -
模块间的内聚
内聚性内聚性,又称块内联系,指模块之间的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。内聚性是对一个模块内部各个组成元素之间相互结合的紧密程度的度量指标。模块中组成元素结合的越紧密,模块的内聚性就越高,模块的独立性也就越高。理想的内聚性要求模块的功能应明确、单一,即一个模块只做一件事情。模块的内聚性和耦合性是两个相互对立且又密切相关的概念。原创 2016-11-08 21:31:31 · 1144 阅读 · 18 评论 -
软件开发方法
软件开发方法主要有四种:第一:结构化开发方法此方法应用的图形较多,比如数据流图,用于信息的变换和传递。控制流图,数据词典,判定树和判定表。 步骤:首先是系统分析,形成物理数据流图,然后推导逻辑数据流图,接着设计出逻辑系统以及人机接口界面。确定成本,分线后选择方案。建立需求规约。 这种方法适用于班花宁和事务型形结构 第二:面向数据结构此种方法首先确定信息原创 2016-12-01 10:35:59 · 442 阅读 · 25 评论 -
软件需求及分析
什么是需求?比如天冷,我想吃热乎的东西,这个热乎的东西就是需求,如果别人向我推销冰激凌,我肯定不买,所以如果我们不懂得分析需求,经营生意,那结果大多不好。既然需求这么好,那我们应该怎样获取呢?我首先想到的是问,不错,当我们到餐厅时,服务员会立马问我们想吃啥,这就是获取需求的方式之一。问的形式多种多样,比较传统的是面对面问,比较省事的采用问卷的形式,如果人员能聚集 起来就采用会议讨论的方式问,原原创 2016-11-27 17:10:02 · 371 阅读 · 29 评论 -
抽象工厂模式和工厂模式的区别
抽象工厂模式是工厂模式的进一步抽象他们的区别如下:工厂方法模式:1.一个抽象产品类,可以派生出多个具体产品类。2.一个抽象工厂类,可以派生出多个具体工厂类。3.每个具体工厂类只能创建一个具体产品类的实例。抽象工厂模式:1.多个抽象产品类,每个抽象产品类可以派生出多个具体产品类。2.一个抽象工厂类,可以派生出多个具体工厂类。3.每个具体工厂类原创 2017-09-30 19:49:59 · 1099 阅读 · 19 评论 -
Java基础---反射
文章目录前言叙述是什么相关的类Java中的Class三种获取方式注意小结前言叙述是什么是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制相关的类 Java中的Class三种获取方式利用对象...原创 2019-09-27 11:01:37 · 150 阅读 · 0 评论 -
数组、集合、泛型
文章目录前言叙述数组是什么?为什么有?特点?集合是什么?为什么有?特点?泛型是什么?为什么有?特点?衍生是什么?为什么有?特点?小结前言叙述数组是什么?为什么有?特点? 集合是什么?为什么有?特点?泛型是什么?为什么有?特点?衍生是什么?为什么有?特点?黑色背景 小结感谢您的阅读~~...原创 2019-09-27 10:26:53 · 162 阅读 · 1 评论 -
抽象类和接口
文章目录前言叙述抽象类是什么特点接口是什么特点 接口和抽象类的区别 抽象类和接口的相同点抽象类和接口的使用场景 衍生小结前言叙述抽象类是什么what :抽象多个具体类特点抽象-方法只包含方法声明抽象类不能实例化有抽象方法,类一定是抽象类具体派生类必须覆盖基类抽象方法抽象派生类可以不覆盖jdk1.8后可以包含静态方法  ...原创 2019-09-27 10:22:54 · 144 阅读 · 0 评论 -
二、看代码画图
根据代码写UML图,你玩过吗?接下来我来带你进入这个神奇的世界!【请你思考】这两个UML图有什么不同之处?为什么后面一个设计模式(图2)比前一个设计模式(图1)要灵活的多?我们讨论的结果:图2中超类调用接口,让接口去调用具体实现的方法,这样做的好处是,任何鸭子都能通过接口去调用各种想要的行为,而且对源代码影响很小,图1虽然也是针对接口编程的,但是超类和接口没有联系,子类鸭子原创 2018-02-02 19:35:25 · 1934 阅读 · 3 评论 -
三、看图写代码
上回讲到看代码画图的方法,这次我们要讲看图写代码的方法,你是否期待呢?看UML写代码的好处: 思考UML图间联系,加深对图的理解 看UML图对整体一目了然,能快速认识 整体,把握全局 如何看UML图写代码? 先写代码块的方法头 【修饰符 返回值类型 类名(参数列表){ }】 然后补充哥哥代码块 最后看自己写的是否正确,如果有错误,恭喜你,成长的机会...原创 2018-02-02 19:39:38 · 880 阅读 · 4 评论 -
面向对象
原创 2018-02-10 18:04:27 · 133 阅读 · 6 评论 -
面向过程
原创 2018-02-10 19:21:25 · 174 阅读 · 10 评论 -
委托
原创 2018-02-10 20:07:59 · 178 阅读 · 14 评论 -
接口
What is interface?在JAVA中是一个抽象类型,是抽象方法的集合 Why use interface? Java编程领域中,接口可以为不同类顺利交互提供标准。 特点 接口中每一个方法是隐式抽象的,会被指定为public abstract 接口中可以含有变量,但是会被指定为public static final 接口中的方法是不能在接口中实现的,只能由实现接口的类来实现接口中...原创 2018-02-26 12:03:06 · 248 阅读 · 31 评论 -
Java中static
Static What Static 静态修饰符,static关键字的中文意思是静态的,该修饰符可以修饰成员变量,成员常量和成员方法。 Why(特点)静态会随着类的加载而加载,消失而消失,所以他的生命周期和类一样长 优先于对象存在,静态先存在,对象后存在 被所有实例对象共享 直接被类名调用 静态变量(类变量)和实例变量区别存放位置:类变量随着类的消失而消失,存在方法区中,实例变量随着对...原创 2018-02-28 21:58:02 · 332 阅读 · 75 评论 -
装饰者模式问题
原创 2018-03-11 23:02:21 · 300 阅读 · 4 评论 -
状态模式——状态改变行为
小编复习软考,遇到了很多模式,其中一个很有意思的就是状态模式,下面就有小编来给大家介绍一下。what普遍定义:当一个对象的内在状态改变时允许改变其行为,这个对象看起来形式改变了其类自己总结:对象的行为随着状态改变when那么何时使用呢?这个根据定义就可知道,当对象的行为根据状态变化,并且在运行时刻根据状态变化,就考略用状态模式.也可以说,当一个对象的转换条件过于复杂的时候,使用这个模式可以使逻辑简...原创 2018-05-13 08:47:52 · 402 阅读 · 6 评论 -
策略模式——封装算法,相互替换
小编对策略模式还是比较熟悉的,因为用到了几次,下面我给大家说说策略模式吧!what官方定义:定义算法家族,分别封装起来,让他们之间可以相互替换,,此模式让算法的变化不会影响到十四用算法的客户自己总结:封装策略,让策略根据要求相互替换when需要不同时间应用不同的业务规则,就可以考苏使用策略模式应对变化(和状态模式蛮像的)why和状态模式一样,这个模式限消除了条件语句,而且把变化的部分抽离出来——一...原创 2018-05-13 09:18:41 · 675 阅读 · 12 评论 -
桥接模式——抽象与实现分离
今天学习了桥接模式,小编总结一下!what官方定义:将抽象部分与实现部分分离,使他们都可以独立的变化自己理解:抽象的整体可以实现自己的对象,部分也可以实现自己的对象,抽象和实现是聚合关系when当整体有多角度变化,而且部分也是多角度变化,两者独立变化,需要相互解耦的时候就考虑用桥接模式适用场景:山寨手机手机是抽象整体,手机的不同品牌是抽象整体的子类,手机零件是抽象部分,电池,耳机等零件是具体的部分...原创 2018-05-13 18:21:51 · 765 阅读 · 13 评论 -
访问者模式-
下边学习了访问者模式,和大家分享一下学习成果//定义:为其他对象提供一种代理以控制对这个对象的访问 //自己理解:委托代理去访问对象,让访问者和被访问对象分离,各不影响 //使用场景: //1、远程代理——为一个对象在不同的地址空间提供局部代表 //2、虚拟代理——根据需要创建开销很大的对象(大型浏览器中未打开的图片使用虚拟代...原创 2018-05-23 21:36:32 · 215 阅读 · 20 评论 -
类与类图,以及类间关系
文章目录前言叙述类与类图如何表示类图间关系关联关系1、双向关联2、单项关联3、自关联4、多重关联5、聚合关系6、组合关系依赖关系泛化关系接口与实现关系前言叙述类与类图二者分别是什么?类封装了数据和行为,是具有相同属性,操作,关系的对象集合的总称。类图是描述系统的静态结构,用来描述不同类以及他们之间的关系类图的种类?实体类、控制类、边界类如何表示类的UML表示类使用包含类名...原创 2019-09-27 09:16:31 · 287 阅读 · 1 评论 -
修饰符、属性、构造方法
文章目录前言叙述修饰符Java有哪些修饰符?他们有什么区别属性属性和字段的区别构造方法是什么?什么时候调用?特点小结前言叙述修饰符Java有哪些修饰符?public protected default private他们有什么区别default (即默认,什么也不写): 在同一包内可见,不使用任何修饰符。使用对象:类、接口、变量、方法。private : 在同一类内...原创 2019-09-27 09:37:16 · 114 阅读 · 0 评论 -
方法重载和方法重写
文章目录前言叙述方法重载是什么特点方法重写是什么作用是什么小结前言叙述方法重载是什么java中的方法重载发生在同一个类里面两个或者多个方法的方法名相同但是参数不同的情况。特点(1)方法重载是让类以统一的方法处理不同类型数据的一种手段。多个同名函数同时存在,具有不同的参数个数(类型)。重载Override是一个类中多态性的一种表现。(2)java的方法重载,就是在类中可以创建多个...原创 2019-09-27 09:46:00 · 123 阅读 · 0 评论 -
封装、继承、多态
文章目录前言叙述封装是什么?为什么有?封装的原则?继承是什么?为什么需要继承? 继承类型 继承特性 构造器多态是什么作用是什么 多态的三个条件实现多态方式子类转换成父类时的规则:多态的好处多态实现的原理小结前言叙述封装是什么?每个对象都包含他能进行操作的所有信息为什么有?良好的封装能减少耦合类内部可以自由修改类具有清晰的接口封装的原则?关于对象封装的原则:内聚:内...原创 2019-09-27 10:11:42 · 154 阅读 · 0 评论 -
设计模式入门
设计模式入门场景:某公司做一款鸭子游戏,设计一个鸭子超类,并让各种鸭子继承此超类(图1)。现在公司想让鸭子飞。于是设计师很快速的在超类中添加了一个fly()方法,并因此很高兴。结果客户发现所有类型的鸭子都能飞,就连木头鸭子也是(图2)。【请你思考:在超类中添加fly()方法,导致所有继承超类的子类都具有这一方法,如果你是设计师会怎么做?来看看设计师怎么做的吧。】设计师思考:原创 2018-01-31 21:06:37 · 218 阅读 · 3 评论