以下是自己所理解的最简单的代理模式,大神绕道,因为之前一直没有接触设计模式的部分:
代理模式理解:当一个接口中有10个方法,有一个实现他的UseDaiLi类,只需要menthord1()这个方法,如果直接implement这个类的话,就会自动生成10个方法,变得很多余.这时候就有一个DaiLi先实现这个接口,然后让类UseDaiLi类继承他, 重载menthord1()这个方法即可,这就是我所理解的最简单的代理模式的应用场景.
1.先定义一个接口,里面有10个方法,可能会让用户来调用的,如下代码:
/**
* 当一个接口中有10个方法,有一个实现他的UseDaiLi类,只需要menthord1()这个方法,如果直接implement
* 这个类的话,就会自动生成10个方法,变得很多余.这时候就有一个DaiLi先实现这个接口,然后让类UseDaiLi类继承他
* 重载menthord1()这个方法即可,这就是我所理解的最简单的代理模式的应用场景.
*
* @author ALLONE
*
*/
public interface DaiLiInterface {
public void menthod1();
public void menthod2();
public void menthod3();
public void menthod4();
public void menthod5();
public void menthod6();
public void menthod7();
public void menthod8();
public void menthod9();
public void menthod10();
}
2.方法太多,如果直接继承,势必会产生很多多余的代码,需要建立一个代理类,先实现它的所有方法,让用户来继承,选择相应要使用的方法进行重写,代理类如下:
public class UseDaiLi implements DaiLiInterface {
@Override
public void menthod1() {
System.out.println("代理类用户只需要使用这个类menthod1");
}
@Override
public void menthod2() {
}
@Override
public void menthod3() {
}
@Override
public void menthod4() {
}
@Override
public void menthod5() {
}
@Override
public void menthod6() {
}
@Override
public void menthod7() {
}
@Override
public void menthod8() {
}
@Override
public void menthod9() {
}
@Override
public void menthod10() {
}
}
3.用户使用代理类的测试类,如下:
/**
* 这个类是需要使用接口里面的一个函数menthod1()
*
* @author ALLONE
*
*/
public class DaiLi extends UseDaiLi {
public static void main(String[] args) {
DaiLi ceshi = new DaiLi();
ceshi.menthod1();
}
@Override
public void menthod1() {
System.out.println("用户只需要使用这个类menthod1,不需要重写所有的方法");
}
}
测试结果如下:
用户只需要使用这个类menthod1
上述就是我老大给我讲的最基本的代理类,后续会更新,大神绕道,不喜勿喷.