题目:相同的两份试卷,甲乙两个人做,答案不同 打印结果: 这其实就是通过面向对象的三大特性实现代码的复用,使重复代码降到最低 ...
分类:
其他好文 时间:
2017-08-24 18:04:23
阅读次数:
167
题目:给一个人“小王”搭配衣服和裤子 特别注意这段 一层套一层,代表功能的拓展 装饰者模式是利用setComponent进行包装的 另外,如果只有一个ConcreteComponent类而没有抽象的Component类,那Decorator类可以是ConcreteComponent的一个子类。 如果 ...
分类:
其他好文 时间:
2017-08-22 18:41:54
阅读次数:
138
类图分三层: 第一层:类的名称,如果是抽象类,就用斜体显示 第二层:类的特性,通常是字段和属性 第三层:类的操作,通常是方法或行为 接口图:第一行是接口名称,第二行是接口方法 继承:用空心三角形+实线 实现:用空心三角形+虚线 关联:用实线+箭头 聚合:用空心的菱形+实线箭头(包含但不是其中一部分) ...
分类:
其他好文 时间:
2017-08-21 15:53:24
阅读次数:
137
还是以计算器案例为基础进行理解。 需求:实现一个简单计算器功能,对两个数实现加减运算 最简单的做法是使用if-else结构 这种做法的缺点是因为对每个条件都要进行一次判断,一旦if-else判断条件增多,对程序性能会有浪费 当然这个问题可以改成swithc-case来解决 但是这种方式没有用到面向对 ...
分类:
其他好文 时间:
2017-08-20 14:55:56
阅读次数:
140
代理模式应用场景:1、远程代理:为一个对象在不同的地址空间提供局部代表。可隐藏对象存在不同地址空间的事实。例如ws在.net中的应用。 2、虚拟代理:通过代理来存放实例化需要很长时间的真实对象。例如让一个很大的html页面立即展开,可以通过代理设置图片位置为空,先占位打开页面,然后再慢慢加载图片后填 ...
分类:
其他好文 时间:
2017-08-16 18:18:55
阅读次数:
148
1.背景 想象一个场景:有个功能通过某个参数决定了路由到不同的方法上或者几个方法模块可以自由搭配,咋办?一般人会对每个方法写一个helper(比如SendMessageForEmail、SendMessageForSMS). 2.分析 这样的方法可以吗?当然可以实现,而且跑起来压根没问题,如果你想让 ...
分类:
其他好文 时间:
2017-08-16 17:04:26
阅读次数:
207
琢磨了一下策略模式,发现各个模式之间并非区别特别大,他们都是基于软件project一个大的基础上进行细微化区别的设计。要想熟练的选择和使用各个模式要了解每一个模式的应用场景。 比方这次学习的策略模式。在大话设计模式中举了一个商场促销几种方案的样例,假设以简单工厂模式切入写出的程序和策略模式答题不差。 ...
分类:
其他好文 时间:
2017-08-08 15:12:31
阅读次数:
85
声明:以下内容来源于《大话设计模式》,学习 简单工厂模式类图: 界面: 代码: ...
分类:
其他好文 时间:
2017-08-05 19:00:34
阅读次数:
210
下面考虑《大话设计模式》中的一个例子: 题目:用任意一种面向对象语言实现一个计算器控制台程序。要求输入两个数和运算符号,得到结果。 题目分析: 程序应该做到:(1)可维护;(2)可复用;(3)可扩展;(4)灵活性好。可维护:就是说代码一处更改,不能产生连锁反应,不能影响其他地方。可复用:尽量减少重复 ...
分类:
编程语言 时间:
2017-08-05 16:44:55
阅读次数:
147
声明:以下内容来源于《大话设计模式》,学习。 策略模式:定义了算法家族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化,不会影响到使用算法的客户。 商场收费策略:正常收费、打折收费、返利收费。 类图如下: 代码: ...
分类:
其他好文 时间:
2017-08-05 13:16:00
阅读次数:
122