适配器模式
-
适配器模式大概是系统用的最多的模式,在spring框架当中可以看到他的各种应用,比如我们想要注册自己的拦截器,或者需要沿用旧接口完成一些自己的实现,都可以使用适配器模式进行实现,适配器模式是一种非常贴合最少知识原则的设计模式。 定义:在不改动客户代码的情况下实现一个接口向另一个接口的自由转化,让原本不能适配的接口具备相似的功能。 适配器存在三个角色,客户端,适配器,被适配者。适配器实现目标的接口,并且持有被适配者的实例。适配器模式是一种:行为型模式。因为他将一个接口的行为转化为另一个接口的行为。 配器模式的优点:可以让客户从接口的实现当中解放;让客户由原本的面向实现转变为面向接口;让被适配对象具备接口功能的同时可以实现自由的扩展。 适配器使用的建议:一个适配器最好做一个类的适配工作。如果一个适配器需要适配多个类,需要考虑是否存在关联性。可以使用双向接口适配器,既可以实现旧接口的方法不改动,同时实现新接口的新实现。要做到这一步,关键是确保:两个接口。 继承是指对于一个类进行“超类”的扩展,如果此时我们使用继承的形式去扩展目标对象,虽然从理论上可以实现一个适配器直接具备两个对象的功能,但是由于JAVA本身是不支持多继承的,同时多用组合,少用继承是软件设计行业一条非常推崇的定律。所以继承的形式“不太友好”。 组合是比较推崇的形式,我们在实现目标接口的基础之上,组合被适配的对象,让旧接口的功能可以兼容新接口的实现。这也是JAVA代码当中经常会见到的一种形式,同时在框架中以类似“套版”的形式出现。 适配器的实现就是把客户类的请求转化为对适配者的相应接口的调用,当客户端进行请求的时候,目标对象通过适配器,将请求的逻辑转变为“适合”被适配对象的请求,由适配器完成这一转化细节,适配过后执行被适配对象的功能,这种转化对于客户端来说是隐蔽的,同时会让客户端误认为是目标对象完成的了工作,所以这种模式的最大特点是:请求代码可以完全不需要改变。
西南地区IT社群(QQ)
- 云南
- 【昆明网页设计交流吧】243627302
- 【昆明nodejs交流吧】 243626749
- 【VUE】838405306
- 【云南程序员总群】343606807
- 【昆明UI设计】104031254
- 【云南软件外包】15547313
- 贵州
- 【PHP/java源码/站长交流群】55692114
- 四川
- 【成都Java/JavaWeb交流】86669225
- 【vaScript+PHP+MySql】116270060
- 【UI设计/设计交流学习群】135794928
- 重庆
- 【诺基亚 JAVA游戏博物馆】 559479780
- 【PHP,Java,Python,C++接单】 442103442
- 西藏