、、
代码如下
package com.gqc.adapters;
public interface IWorkerAdapters {
String work(Object worker);
}
package com.gqc.adapters.impl;
import com.gqc.adapters.IWorkerAdapters;
import com.gqc.worker.ICooker;
import com.gqc.worker.IProgrammer;
//适配器类
public class WorkerAdapter implements IWorkerAdapters {
@Override
public String work(Object worker) {
String workContent="";
//如果传来的对象是厨师 则调用其cook方法
if(worker instanceof ICooker){
workContent=((ICooker)worker).cook();
}
//如果是程序员 则调用program方法
if(worker instanceof IProgrammer){
workContent=((IProgrammer)worker).program();
}
return workContent;
}
}
package com.gqc.test;
import com.gqc.adapters.IWorkerAdapters;
import com.gqc.adapters.impl.WorkerAdapter;
import com.gqc.worker.ICooker;
import com.gqc.worker.IProgrammer;
import com.gqc.worker.impl.JDProgrammer;
import com.gqc.worker.impl.QjdCooker;
public class MyTest {
/**
* @param args
*/
public static void main(String[] args) {
ICooker qjdCooker=new QjdCooker();
IProgrammer jdProgrammer=new JDProgrammer();
Object[] workers={qjdCooker,jdProgrammer};
//创建适配器对象
IWorkerAdapters adapter=new WorkerAdapter();
//循环遍历每个工种对象,让每个工种对象在适配器中逐个进行匹配
for (Object worker : workers) {
String workerContent=adapter.work(worker);
System.out.println(workerContent);
}
}
}
package com.gqc.worker;
public interface ICooker {
String cook();
}
package com.gqc.worker;
public interface IProgrammer {
String program();
}
package com.gqc.worker.impl;
import com.gqc.worker.IProgrammer;
package com.gqc.worker.impl;
import com.gqc.worker.ICooker;
import com.gqc.worker.IProgrammer;
public class MyTest {
/**
* @param args
*/
public static void main(String[] args) {
ICooker qjdCooker=new QjdCooker();
IProgrammer jdProgrammer=new JDProgrammer();
System.out.println(qjdCooker.cook());
System.out.println(jdProgrammer.program());
}
}
public class JDProgrammer implements IProgrammer {@Overridepublic String program() {return "编写程序";}}
package com.gqc.worker.impl;
import com.gqc.worker.ICooker;
public class QjdCooker implements ICooker {
@Override
public String cook() {
// TODO Auto-generated method stub
return "做烤鸭";
}
}
package com.gqc.worker.impl;
import com.gqc.worker.ICooker;
import com.gqc.worker.IProgrammer;
public class MyTest {
/**
* @param args
*/
public static void main(String[] args) {
ICooker qjdCooker=new QjdCooker();
IProgrammer jdProgrammer=new JDProgrammer();
System.out.println(qjdCooker.cook());
System.out.println(jdProgrammer.program());
}
}