设计模式---适配器模式
一、适配器模式
产生的背景:
对于客户的某个需求,有时,现有的类可以提供客户类的功能需要,但是它所提供的接口不一定是客户类所期望的
解决办法:
这时,应将现有的接口需要转化为客户类期望的接口,这样保证了对现有类的重用。如果不进行这样的转化,客户类就不能利用现有类所提供的功能。
适配器模式:
适配器模式建议定义一个包装类(适配器Adapter),包装有不兼容接口的对象(适配者Adaptee)。适配器提供客户类需要的接口,适配器接口的实现是把客户类的请求转化为对适配者的相应接口的调用。
二、主要角色
Target:与客户端使用有关的接口
Adaptee: 一个已经存在的类,它可以提供客户类的功能需要,但是它所提供的接口不一定是客户类所期望的
Adapter:适配器:提供客户需要的接口
三、程序示例
Target
//适配器模式 //与客户端使用有关的接口 interface Target { void request(); }
Adaptee
//一个已经存在的类,它可以提供客户类的功能需要,但是它所提供的接口不一定是客户类所期望的 class Adaptee { void specificRequest() { System.out.println("已存在的类,需要进行适配!"); } }
Adapter
//适配器:提供客户需要的接口,包装的对象就是适配者(Adaptee) //功能:适配器接口的实现是把客户类的请求转化为对适配者的相应接口的调用 public class Adapter implements Target { private Adaptee adaptee; public Adapter() { adaptee = new Adaptee(); } public void request() { System.out.println("Adapter's request!"); adaptee.specificRequest(); } }
客户端
//适配器模式 //测试程序(客户端) package com; public class TestMain { public static void main(String [] args) { Target client = new Adapter(); client.request(); } }