赞
踩
适配器模式是一种结构型设计模式。适配器模式的思想是:把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。
适配器模式涉及3个角色:
适配器模式包括3种形式:类适配器模式、对象适配器模式、接口适配器模式(或又称作缺省适配器模式)。
代码:
Adaptee
- package oopdemo01.Design_pattern.adapter;
-
- // 要被适配的类:网线
- public class Adaptee {
- public void request() {
- System.out.println("连接网线上网");
- }
- }
Adapter(此处继承Adaptee)
- package oopdemo01.Design_pattern.adapter;
-
-
- // 1.继承 (类适配器,单继承)
-
- // 真正的适配器,需要连接usb,连接网线
- public class Adapter extends Adaptee implements NetToUsb {
-
- @Override
- public void handleRequest() {
- super.request(); // 可以上网了
- }
- }
NetToUsb
- package oopdemo01.Design_pattern.adapter;
-
- // 接口转换器的抽象实现
- public interface NetToUsb {
- // 作用:处理请求,网线=>usb
- public void handleRequest();
- }
Computer
- package oopdemo01.Design_pattern.adapter;
-
- // 客户端类:想上网,插不上网线
- public class Computer {
-
- // 我们的电脑需要连接上转接器才可以上网
- public void net(NetToUsb adapter) {
- // 上网的具体实现,找一个转接头
- adapter.handleRequest();
- }
-
- public static void main(String[] args) {
- // 电脑 适配器 网线
- Computer computer = new Computer(); // 电脑
- Adaptee adaptee = new Adaptee(); // 网线
- Adapter adapter = new Adapter(); // 转接器
-
- computer.net(adapter);
- }
- }

控制台输出结果:
Adapter2(此处的Adaptee是一个属性)
- package oopdemo01.Design_pattern.adapter;
-
-
- // 2.组合 (对象适配器:更常用)
-
- // 真正的适配器,需要连接usb,连接网线
- public class Adapter2 implements NetToUsb {
-
- private Adaptee adaptee;
-
- public Adapter2(Adaptee adaptee) {
- this.adaptee = adaptee;
- }
-
- @Override
- public void handleRequest() {
- adaptee.request(); // 可以上网了
- }
- }

Computer
- package oopdemo01.Design_pattern.adapter;
-
- // 客户端类:想上网,插不上网线
- public class Computer {
-
- // 我们的电脑需要连接上转接器才可以上网
- public void net(NetToUsb adapter) {
- // 上网的具体实现,找一个转接头
- adapter.handleRequest();
- }
-
- public static void main(String[] args) {
- // 电脑 适配器 网线
- Computer computer = new Computer(); // 电脑
- Adaptee adaptee = new Adaptee(); // 网线
- Adapter2 adapter2 = new Adapter2(adaptee); // 转接器
-
- computer.net(adapter2);
- }
- }

控制台输出结果:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。