Java设计模式
一、Singleton单例模式
二、Strategy 策略模式
- 对做同一件事情的不同实现方式。
三、工厂模式
- 任何可以产生对象的方法或类都可以叫做工厂。
- 单例也是一种工厂。
1、简单工厂
2、工厂方法
3、抽象工厂
可以干什么用接口、是什么用抽象类
4、Spring IOC
四、调停者Mediator
消息中间件、解耦
五、门面Facade
六、修饰器Decorator
七、责任链
八、观察者 Observer
事件处理模式
九、组合Composite
树状结构专用模式
十、享元flyweight
重复利用对象
String 就是享元模式
结合composite的享元模式
十一、代理Proxy
- 静态代理
- 动态代理
十二、迭代器 Iterator
构建动态扩列的实现
集合类
十三、访问者 Visitor
在结构不变的情况下动态改变对于内部元素的动作
十四、构建器Builder
构建复杂对象
十五、Adapter(Wrapper)
接口转接器
十六、Bridge
双维度扩展
分离抽象与具体
用聚合方式(桥)连接抽象与具体
十七、命令模式Command
do(),undo()
十八、原型模式Prototype
Object.clone()
- Java中自带原型模式
- 实现原型模式需要实现标记型接口Cloneable
- 一般会重写clone()方法
- 一般用于一个对象的属性已经确定,需要产生很多相同对象的时候
- 需要区分深克隆与浅克隆
十九、备忘录Memento
记录状态
便于回滚
记录快照、存盘
二十、模板TemplateMethod
勾子函数
二十一、状态模式State
根据状态决定行为
二十二、解释器Intepreter
动态脚本解析
面向对象编程原则
-
单一职责原则
-
开闭原则:对扩展开放、对修改闭合
-
里氏替换原则:所有子类能替代父类
-
依赖倒置原则:面向抽象编程、面向接口编程
-
接口隔离原则:每个接口只承担独立角色、避免子类实现不需要的方法、对客户端暴露最小接口
Q.E.D.