本文共 873 字,大约阅读时间需要 2 分钟。
上一篇我们整理好了创建型模式,这里我们继续把剩下的结构型模式和行为型模式写完。
结构型模式有7种,重点为适配器模式、装饰模式、代理模式。
1、适配器模式
适配器模式主要强调的是适配,可以理解为两个不兼容的类或接口之前的桥梁。主要有三种:类适配、接口适配、对象适配。
2、装饰器模式
装饰器模式是用来在原有类基础上增加新的功能,同时又不改变原有结构。
3、代理模式
代理模式就是一个类代表了后面几个类的功能,有一个统一的出口,对外提供服务,同时又隐藏了类自己内部的具体实现。
4、桥接模式
桥接模式解决的是解耦的问题,使各个组件独立化,通过提供抽象化和实现化之间的桥接结构,来实现解耦。
5、享元模式
享元模式主要用于减少创建对象的数量,以减少内存占用和提高性能。她一般是先尝试重用现有的同类对象,如果未找到匹配的对象,则创建新对象。
行为型模式有11种,重点为观察者模式、策略模式、迭代器模式。
1、观察者模式
观察者模式主要是在对象存在一对多的关系时使用,主要解决的是当一个对象被修改时,则会自动通知它的依赖对象。面试中最常问到的就是NIO就是使用的观察者模式,selecter的多路复用。
2、策略模式
策略模式的特点是类的行为或其算法可以在运行时更改,动态修改,需要实现同一个接口。
3、迭代器模式
迭代器模式主要用来顺序访问集合对象的元素,而并不需要知道集合对象的底层实现。Java中最常用的迭代器遍历集合元素就是使用的此模式。
4、命令模式
命令模式是一种数据驱动的模式,请求以命令的形式包裹在对象中,并传给调用对象。
5、模板模式
模板模式是在抽象类中公开定义了执行它的方法的方式或模板,对应的子类可以按需重写对应的方法实现,但调用将以抽象类中定义的方式进行。
6、责任链模式
责任链模式是为请求创建一个接收者对象的链。属于模式给予请求类型,会对请求的发送者和接收者进行解耦,通常每个接收者都包含对另一个接收者的引用。
以上都是面试中常见的设计模式,大家还是注重理解,平时注意积累,到时候就信手拈来啦。
转载地址:http://ahoji.baihongyu.com/