
1、类适配器模式
实现方式:定义一个适配器类来实现当前系统的业务接口,同时又继承现有组件库中已经存在的组件。
publicclassHelloWorld{
publicstaticvoidmain(String[]args){
Computercomputer=newComputer();
SDCardsdCard=newSDCardImpl();
System.out.println(computer.readSD(sdCard));
System.out.println("------------");
SDAdapterTFadapter=newSDAdapterTF();
System.out.println(computer.readSD(adapter));
}
}
//SD卡的接口
interfaceSDCard{
//读取SD卡功能
StringreadSD();
//写入SD卡功能
voidwriteSD(Stringmsg);
}
//SD卡实现类
classSDCardImplimplementsSDCard{
@Override
publicStringreadSD(){
Stringmsg="sdcardreadamsg:hellosdcard";
returnmsg;
}
@Override
publicvoidwriteSD(Stringmsg){
System.out.println("sdcardwritemsg:"+msg);
}
}
//电脑类
classComputer{
publicStringreadSD(SDCardsdCard){
if(sdCard==null){
thrownewNullPointerException("sdcardnull");
}
returnsdCard.readSD();
}
}
//TF卡接口
interfaceTFCard{
//读取TF卡功能
StringreadTF();
//写入TF卡功能
voidwriteTF(Stringmsg);
}
//TF卡实现类
classTFCardImplimplementsTFCard{
@Override
publicStringreadTF(){
Stringmsg="sdcardreadamsg:hellotfcard";
returnmsg;
}
@Override
publicvoidwriteTF(Stringmsg){
System.out.println("tfcardwritemsg:"+msg);
}
}
//定义适配器类(SD兼容TF)
classSDAdapterTFextendsTFCardImplimplementsSDCard{
@Override
publicStringreadSD(){
System.out.println("adapterreadtfcard");
returnreadTF();
}
@Override
publicvoidwriteSD(Stringmsg){
System.out.println("adapterwritetfcard");
writeTF(msg);
}
}
2、对象适配器模式
实现方式:对象适配器模式可采用将现有组件库中已经实现的组件引入适配器中,该类同时实现当前系统的业务接口。
publicclassHelloWorld{
publicstaticvoidmain(String[]args){
Computercomputer=newComputer();
SDCardsdCard=newSDCardImpl();
System.out.println(computer.readSD(sdCard));
System.out.println("------------");
TFCardtfCard=newTFCardImpl();
SDAdapterTFadapter=newSDAdapterTF(tfCard);
System.out.println(computer.readSD(adapter));
}
}
//SD卡的接口
interfaceSDCard{
//读取SD卡功能
StringreadSD();
//写入SD卡功能
voidwriteSD(Stringmsg);
}
//SD卡实现类
classSDCardImplimplementsSDCard{
@Override
publicStringreadSD(){
Stringmsg="sdcardreadamsg:hellosdcard";
returnmsg;
}
@Override
publicvoidwriteSD(Stringmsg){
System.out.println("sdcardwritemsg:"+msg);
}
}
//电脑类
classComputer{
publicStringreadSD(SDCardsdCard){
if(sdCard==null){
thrownewNullPointerException("sdcardnull");
}
returnsdCard.readSD();
}
}
//TF卡接口
interfaceTFCard{
//读取TF卡功能
StringreadTF();
//写入TF卡功能
voidwriteTF(Stringmsg);
}
//TF卡实现类
classTFCardImplimplementsTFCard{
@Override
publicStringreadTF(){
Stringmsg="sdcardreadamsg:hellotfcard";
returnmsg;
}
@Override
publicvoidwriteTF(Stringmsg){
System.out.println("tfcardwritemsg:"+msg);
}
}
//定义适配器类(SD兼容TF)
classSDAdapterTFimplementsSDCard{
privateTFCardtfCard;
publicSDAdapterTF(TFCardtfCard){
this.tfCard=tfCard;
}
@Override
publicStringreadSD(){
System.out.println("adapterreadtfcard");
returntfCard.readTF();
}
@Override
publicvoidwriteSD(Stringmsg){
System.out.println("adapterwritetfcard");
tfCard.writeTF(msg);
}
}原文来自:https://www.py.cn © 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END

















































暂无评论内容