除了类本身,设计模式更强调多个类/对象之间的关系和交互过程——比接口/类复用的力度更大。
1.创建型模式
适配器模式(Adapter):将某个类/接口转换为客户端期望的其他形式。通过增加一个接口,将已存在的子类封装起来,客户端面向接口编程,从而隐藏了具体子类。
装饰器模式(Decorator):为对象增加不同侧面的特性,通过对每一个特征构造子类,在用委派机制增加到对象上。
外观模式(Facade):客户端通过一个简化的接口来访问复杂系统内的功能,提供一个统一的接口来取代一系列小接口调用,相当于复杂系统做了一个封装,简化客户端使用。
2.行为类模式
策略模式(Strategy):
![](https://i-blog.csdnimg.cn/blog_migrate/7a439677bd95d976525da54f5fa6bf54.png)
模板模式(Template):做事情的步骤一样,但具体方法不同时,使用继承和重写实习模板模式。共性的步骤在抽象类内公共实现,差异化的步骤在各个子类中出现。依次访问对象的元素而不暴露其基本表示。
![](https://i-blog.csdnimg.cn/blog_migrate/0e32f214e2f9ac7a536a3aa00f2271ef.png)
迭代器模式(Iterator):让自己的集合实现Iterable接口,并实现自己的独特Iterator(hasnext、next、remove),允许客户端利用这个迭代器进行显示或隐式的迭代。
![](https://i-blog.csdnimg.cn/blog_migrate/cbcb8466cef0e9f37124cc946032d16e.png)