一、设计模式
设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了重用代码、让代码更容易被他人理解、保证代码可靠性。它与架构的区别在于设计模式比架构更抽象,是比架构更小的体系结构元素,是从代码层面总结的实现一个模块最优的方法。而常见的设计模式按照范围可以分为类模式和对象模式,按照目的可以分为创建型模式、结构型模式、行为型模式。创建型模式是对象实例化的模式,创建型模式用于解耦对象的实例化过程,包括抽象工厂模式、生成器模式、工厂模式、原型模式、单件模式;结构型模式是把类或对象结合在一起形成一个更大的结构,包括适配器模式(类对象)、组合模式(对象)、装饰模式(对象);行为型模式是描述类和对象如何交互,及划分责任和算法,包括迭代器模式、观察者模式、状态模式。
总体来说设计模式分为三大类:
创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。
结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。
行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。
二、适配器模式
适配器是一种适配中间件,它存在于不匹配的二者之间,用于连接二者,将不匹配变得匹配,简单点理解就是平常所见的转接头,转换器之类的存在。
适配器模式有两种:类适配器、对象适配器、接口适配器
UML图 |
适配器模式应用场景:
(1)想要使用一个已经存在的类,但是它却不符合现有的接口规范,导致无法直接去访问,这时创建一个适配器就能间接去访问这个类中的方法。
(2)我们有一个类,想将其设计为可重用的类(可被多处访问),我们可以创建适配器来将这个类来适配其他没有提供合适接口的类。
类适配器模式代码:
1 public interface Ps2 { 2 void isPs2(); 3 }
1 public interface Usb { 2 void isUsb(); 3 }
1 public class Usber implements Usb { 2 3 @Override 4 public void isUsb() { 5 System.out.println("USB口"); 6 } 7 8 }
1 public class Adapter extends Usber implements Ps2 { 2 3 @Override 4 public void isPs2() { 5 isUsb(); 6 } 7 8 }
1 public class Clienter { 2 3 public static void main(String[] args) { 4 Ps2 p = new Adapter(); 5 p.isPs2(); 6 } 7 8 }