在开发中,我们会遇到不同的类需要调同一个方法,但这个方法在设计之初就被规定了参数类型,导致其他类想调用这个方法而不能,这时候就需要设计一个接口的适配器模式,通过适配器来确定需要调用的类。
首先需要定义一个抽象类
public abstract class AbstractSubject<T extends Object> {//implements Subject
public String operation(T t) {
return createLog(t);
}
abstract protected String createLog(T t);
}
定义2个接口类
public class MySubject extends AbstractSubject<User> {
@Override
protected String createLog(User t) {
return "name:xiaoLi";
}
}
public class PassSubject extends AbstractSubject<Pass>{
@Override
protected String createLog(Pass t) {
return "passWork : 123456";
}
}
调用方式,通过对象区分调用的类
public class ObserverTest {
public static void main(String[] args) {
AbstractSubject rs = new MySubject();// 用户对象
AbstractSubject ps = new PassSubject();//密码对象
//通过对象找类
System.out.println(rs.operation(new User()));
System.out.println(ps.operation(new Pass()));
}
}