适配器模式

简介: 目的:原接口的参数等不满足现有条件,或者完全不同,同时不想改变原接口。优点:1.可以让任何两个没有关联的类一起运行 2。提高了类的复用,解决了现存类和复用环境要求不一致的问题缺点:增加了类的数量,增加了结构的复杂性。


目的:原接口的参数等不满足现有条件,或者完全不同,同时不想改变原接口。

优点:1.可以让任何两个没有关联的类一起运行

          2。提高了类的复用,解决了现存类和复用环境要求不一致的问题

缺点:增加了类的数量,增加了结构的复杂性。

类适配器:

适配器需要实现接口

类图:

image.png

代码:

 

新增的接口(想调用老接口)

1. interface Target
2. {
3. public void newMethod();
4. }

原有的接口

1. public interface OldMethod{
2. 
3. void oldMethod();
4. }

原有的接口实现

1. public class OldMethodImpl implements  OldMethod{
2. 
3.     @Override
4. public void oldMethodImpl() 
5.            {老方法,被调用");
6.     }
7. 
8. }

适配器

1. public class Adapter extends OldMethodImpl implements NewMethod{
2. 
3. @Override
4.     public void newMethod() {
5.         oldMethodImpl();
6.     }
7. 
8. }

调用

1. 
2. public class App {
3. 
4. public static void main(String[] args) {
5. 
6. Target target= new Adapter();
7.         target.newMethod();
8.     }
9. }

类适配器:

采用组合方式

类图:

image.png

代码:

适配器类

1. class ObjectAdapter implements Target
2. {
3. private OldMethodImpl oldMethodImpl ;
4. public ObjectAdapter(OldMethodImpl oldMethodImpl)
5.     {
6. this.oldMethodImpl=oldMethodImpl;
7.     }
8. public void newMethod()
9.     {
10.         oldMethodImpl.oldMethodImpl();
11.     }
12. }

调用

1. public class ObjectAdapterTest
2. {
3. public static void main(String[] args)
4.     {
5. OldMethodImpl oldMethodImpl = new OldMethodImpl();
6. Target target = new ObjectAdapter(adaptee);
7.         target.newMethod();
8.     }
9. }

 


相关文章
|
5月前
|
Windows
|
8月前
|
设计模式 C++
结构型 适配器模式
结构型 适配器模式
46 0
|
8月前
|
设计模式
【适配器模式】—— 每天一点小知识
【适配器模式】—— 每天一点小知识
|
Java API
适配器模式的运用
适配器模式的运用
90 0
|
设计模式 数据库 C++
2023-6-15-第六式适配器模式
2023-6-15-第六式适配器模式
102 0
|
设计模式 前端开发
关于适配器模式我所知道的
关于适配器模式我所知道的
53 0
|
Java 程序员 API
结构型模式-适配器模式
结构型模式-适配器模式
97 0
|
设计模式
我学会了,适配器模式
适配器模式属于结构型模式,这个类型的设计模式总结出了 类、对象组合后的经典结构,将类、对象的结构和使用解耦了,花式的去借用对象。
106 0
我学会了,适配器模式
|
设计模式 Java Spring
适配器模式详解与应用
引用一个最经典的例子,我们自己家里的电压都是220V的,而早期的手机充电时所用的都是5V的电压。要想让手机在220V的家庭电压下充电,就需要一个电源适配器。在编程中,也经常会出现一个类程序无法直接去使用,而需要通过适当变换的行为抽象出来的设计模式就是适配器模式。