分类 软件设计模式 中的文章

软件设计模式 — 行为型模式

代码全部贴在github。因为UML图挂在processon上了,不过没有加连接。等写完全文就把链接加上。 首先是对象的行为模式: 1. 策略模式 针对一组算法,将每个算法封装到具有共同接口的独立类中,从而使得他们可以相互替换。 2. 状态模式 改变类中的状态。 策略模式和状态模式很像,不同在:状态模式解决内在状态的改变,策略模式解决内部算法的改变。感觉上没什么特别大的区别。- -。 3. 命令模式 类的行为模式: 1. 模板方法模式 ……

阅读全文

软件设计模式 — 单例模式

单例模式确保某个类只有一个实例,而且自行实例化,并向整个系统提供者个实例,提供一个访问它的全局访问点。 核心是:创造私有的构造函数 例如:只有一个实例的东西。 Singleton.java Client ……

阅读全文

软件设计模式 — 适配器模式

4该模式的目标是,通过一个代理(Adapter),在原来的类(Adaptee)和客户(Client)之间进行协调,从而达到兼容的目的。 例如:我的项目中Davinci中使用的模式,将整体的游戏类作为Adapter,把用于通讯的Server类作为成员变量(也就是ObjectAdapter)。 示意代码 ……

阅读全文

正方形是否是长方形的子类?

依据里氏代换原则,子类型必须能够替换掉它们的父类型,子类继承了父类,那么子类可以以父类的身份出现 — 在软件中,把父类都替换成它的子类,程序的行为没有变化。 所以从这个角度而言,正方形并非是长方形的子类。 举个例子,如果长方形中存在一个方法,目的是改变长宽的值,但是正方形只有一个边长,那么就可能出现问题。例如如下代码。 上面是椭圆形的代码。可以改写成矩形来解释这个问题,不过太麻烦我还是先做后面的题目了。……

阅读全文