设计模式知道最基本的原则,能达到重用的目的就行了,不需要深究设计模式到底是什么东西。那么我想把那些经典的设计模式的思想写写:
1) 设计模式归根到底是为了可重用,可扩展,易维护
A===建造模式
2) 工厂模式
工厂模式是用来更合理地生产对象的。
简单工厂模式:知道具体的子类,
工厂方法模式:
抽象工厂模式:不知道具体子类,利用反射技术,找到真正的要创建的类的对象。
3) 建造模式:
把对象拆分成不同的组件,然后组装。
4) 原始模型模式:clone
5) 单例模式:singleton pattern
B==结构模式
5) 适配器。已经有一些类的定义,在现有系统中又不好直接使用,那么就写一些适配器类,来满足当前系统的使用。
6)桥梁模式。将抽象化和实现化脱藕。
7)合成模式。将对象组织到树结构中,可以用来描述整体和部分之间的关系。
8) 装饰模式。可以动态增加和撤销对象的功能。
9) 亨元模式。大量降低内存中对象的数量。
10)门面模式。外部和子系统之间提供一个接口,使子系统更加易于访问。且这个子系统是单例模式。
11)代理模式。用户只需要持有被代理对象的一个接口即可。
C==行为模式
12)职责链模式:用户在不影响客户端的情况下,动态组织和分配责任。
13)命令模式:分割开发出命令和执行命令。
14)解释器模式: 用户指定语言,程序即可翻译。
15)迭代
16)调停者模式: 包装对象之间相互作用的方式,而使各个对象之间不发生明显的相互作用。
17)观察者模式: 一个对象多个观察者,一个对象变,多个观察者跟着变。
18)策略模式:环境和算法分开。封装算法。
19) 模板模式:强制执行剩余部分。
20)访问者模式:封装访问接口。
21)备忘录:
22)状态模式:
接口:
a. 成员都是public static final
b. 方法都是public abstract, 并且没有默认实现
c. 一个具体类可以实现多个接口, 一个接口也可以被另一个接口继承
抽象类:
a. 可以有自己的成员变量
b. 有抽象方法的类一定是抽象类,抽象类里却不一定要有抽象方法
c. 单继承
面向接口编程:
分析的时候考虑对象要做什么,写出接口和基类。
实现的时候考虑怎么去做。
面向对象编程就是面向接口编程:
1) 松耦合,尽量依赖接口而不是具体类
2) 安全性,被接口联接。
3) 开闭, 可扩展而不可被改变。