- 博客(15)
- 收藏
- 关注
原创 递归与分治-全排列
全排列问题的递归算法#include <iostream>#include <algorithm>using namespace std;//产生从元素k~m的全排列void perm(int list[],int k,int m){ if(k==m) { for(int i=0;i<=m;i++) cout<<list[i]<<" "; cout<&l
2020-12-12 00:07:46
157
原创 “组件协作”模式----Template Method
文章目录1.模板方法模式动机2.问题的引入--标准化考试3.模板方法的特点4.优缺点1.模板方法模式动机某一项任务,常常有稳定的整体操作结构,但各个子步骤却有很多改变的需求,或者由于固有原因(比如框架和应用之间的关系)而无法和任务的整体结构同时实现在稳定操作结构的前提下,来灵活应对各个子步骤的变化或者晚期实现需求。2.问题的引入–标准化考试标准化考试比较客观,题目相同定义一个抽象类,具体方法实现相同的部分抽象方法实现不同部分class TestPaper{ public vo
2020-05-14 18:13:11
137
原创 “组件协作”模式----策略模式(Strategy Pattern)
文章目录1.“组件协作”模式2.策略模式动机(Motivation)3.问题引入4.商场收银系统1.01.“组件协作”模式“组件协作”模式通过晚期绑定,来实现框架与应用程序之间的松耦合。 典型模式:StrategyTemplate MethodObserver/Event2.策略模式动机(Motivation)在运行时根据需要透明地更改对象的算法,将算法与对象本身解耦3.问题引入商场收银软件输入单价和数量算出每种商品的小计记录商品的清单记录总计4.商场收银系统1.0
2020-05-14 17:24:59
180
原创 “单一职责”模式----装饰(Decotator)模式
文章目录动机(Motivation)问题的引入继承方式实现代码改进一(组合代替继承)改进版本二(使用装饰模式<中间基类)动机(Motivation)继承来扩展对象的功能,由于继承为类型引入的静态特质,使得这种扩展方式缺乏灵活性。为使“对象功能的扩展”能够根据需要来动态地实现,同时避免“扩展功能的增多”带来的子类膨胀问题,从而使得任何“功能扩展变化”所导致的影响降为最低。问题的引入人及其属性人有不同国家不同属性:高,富,帅,组合方式会随着属性个数的增加急剧增多如果使用继承来扩展对
2020-05-13 12:04:25
192
原创 “单一职责”模式----桥接模式(Bridge)
“单一职责”模式软件组件设计中,如果责任划分不清晰,使用继承得到的结果往往是随着需求的变化,子类急剧膨胀,同时充斥着重复代码,这时候的关键是划清责任。典型模式:DecoratorBridge桥接模式的动机(Motivation)利用面向对象技术来使得类型可以轻松地沿着两个乃至多个方向变化,而不引入额外地复杂度?合成/聚合复用原则,即优先使用对象合成/聚合,而不是类继承,有助于保持每个类并封装,并集中在单个任务上问题的引入手机都有通讯录和游戏功能,M品牌手机和N品牌都有通讯录的
2020-05-12 10:22:08
371
原创 “接口隔离”模式----中介者模式(Mediator)
文章目录动机(Motivation)问题的引入定义动机(Motivation)使用一个“中介对象”来管理对象间的关联关系,避免相互交互的对象之间的紧耦合引用关系,从而更好地抵御变化问题的引入生活中,比如租房,买房,找工作,出国留学,旅游等等可能都需要中介者的帮助最大的中介者是联合国公司内部,很多部门,员工为了完成一定任务,需要一个中介者交流进度分配任务。根据“迪米特法则”,如果两个类不必彼此直接通讯,那么这两个类就不应该发生直接的相互作用。定义Mediator模式将对
2020-05-09 17:06:47
171
原创 “接口隔离”模式----适配器模式(Adapter)
文章目录动机(Motivation)定义适配器模式的两种形式对象的Adapter模式示意性实现Adapter模式选择适配器模式的优缺点本质动机(Motivation)既能利用现有对象的良好实现,同时又能满足新的应用环境所要求的接口定义Adapter英文意思为变压器适配器模式:把一个类的接口变换成客户端所期待的另一种接口,从而使原本接口不匹配而无法在一起工作的两个类能够在一起工作。适配器模式的两种形式适配器adapter适配者adaptee:需要适配的类· 类适配器模式:适配器与适
2020-05-09 10:51:12
577
原创 “接口隔离”模式----外观(门面)模式(Facade Pattern)
文章目录动机(Motivation)动机(Motivation)简化外部客户程序和系统间的交互接口,将外部客户程序的演化和
2020-05-09 09:48:58
124
原创 “接口隔离”模式----代理模式(Proxy Pattern)
1.“接口隔离”模式某些接口之间直接的依赖常常会带来很多问题。采用添加一层间接接口,来隔离本来相互关联的接口典型模式:FacadeProxyAdapterMediator2.代理模式动机(Motivation)在不失去透明操作对象的同时来管理/控制这些对象增加一层间接层3.实例有助于解决软件系统中跨越障碍的问题(例如,调用的Math类【服务器端】与客户程序【客户端】...
2020-04-27 13:54:22
110
原创 创建型模式5,“对象性能”模式----单例模式
“对象性能”模式面向对象很好地解决了“抽象”问题,但是要付一定的代价。通常情况下,面向对象的成本大都可以忽略不计。某些情况,必须谨慎。典型模式SingletonFlyweight2.动机(Motivation)绕过常规的构造器,提供一种机制来保证一个类只有一个实例,这应该是类设计者的责任,而不是使用者的责任。3.场景问题如何实现读取配置文件的内容?(很多项目中,都有与应用相...
2020-04-15 13:52:35
198
原创 创建型模式2-----建造者模式
建造者模式的动机提供一种“封装机制”来隔离出“复杂对象的各个部分”的变化,从而保持系统的“稳定构建算法“不随需求改变而改变问题的引入–建造”小人“import java.awt.*;//支持画图import java.awt.event.*;//对事件的监听public class DrawPerson extends Frame{ public void paint(Graph...
2020-04-14 23:22:05
81
原创 创建型模式4-----原型(Prototype)模式
原型模式动机:对"客户程序(使用结构复杂容易变化的对象的程序)" 隔离出 “这些易变对象”(拥有比较一致的接口)。问题的引入–简历类package resume1;//简历类public class Resume{ private String name; private String sex; private String age; private St...
2020-04-14 21:49:57
112
原创 UML类图画法说明
1.注释(comment)对类图的补充说明,可以附加在任何元素上,通过虚线连接被注释元素。如下图:2.类(Class)在面向对象(OO)编程中,类是对现实世界的一组具有相同特征物体的抽象。在UML类图中,类使用包含类名,属性(field)和方法(method)且带有分割线的矩形来表示。如下图:3.接口(Interface)接口是一种特殊的类,具有类的结构但不可被实例化,只可以被实现...
2020-03-10 21:46:29
1239
原创 UML类图的一个样例
这里写自定义目录标题标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入UML类...
2020-03-03 20:41:19
177
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人