结构型模式主要有:
1.适配器模式
2.外观模式
3.装饰模式
4.桥接模式
5.组合模式
6.享元模式
7.代理模式
1.适配器模式
分为类适配器和对象适配器
类适配器
示例:
//Target:定义Client使用的与特定领域相关的接口
public interface Target
{ void request(); }
//Adaptee:现在需要适配的已经存在的接口
public class Adaptee
{
public void specificRequest(){}
}
//Adapter:对Adaptee的接口与Target接口进行适配
public class Adapter extends Adapteeimplements Target
{
public void request() {
super. specificRequest();
}
}
example:
//Target类或者接口 目标
//现在需要12V的直流电
interfaceDC {
public void provideDCEle();
}
//Adaptee类,源类
//只能够提供220V的交流电
class AC {
public void provideACEle(){
System.out.println("get 220Kv ACele");
}
}
//Adapter类
//获取220V交流电,转换成12vDC
class Adapter extends AC implements DC{
public void provideDCEle(){
super.provideACEle();
System.out.println("使用适配器转换");
System.out.println("get 12v DCele");
}
}
测试:
public class AdapterTest01{
public static void main (String [] args){
DC dc = new Adapter();
dc.provideDCEle();
}
}
对象适配器
适配器类(Adapter)实现Target接口;
适配器类(Adapter)通过组合来实现对Adaptee类的重用示例:
//Target:定义Client使用的与特定领域相关的接口
public interface Target
{
void request();
}
//Adaptee:现在需要适配的已经存在的接口
public class Adaptee
{
public void specificRequest(){}
}
//Adapter:对Adaptee 的接口与Target接口进行适配
public class Adapter implements Target
{
public Adapter(Adaptee adaptee)
{
super();
this.adaptee = adaptee;
}
public void request()
{
adaptee.specificRequest();
}
privateAdapteeadaptee;
}