代理模式主要使用了 Java 的多态 ,干活的是被代理类,代理类主要是接活,你让我干活,好,我交给幕后的类去干,代理就是一个现代的老鸨
1 . 首先定义一种类型的接口
/**
*定义一种类型,一种类型肯定是接口,接口里定义这种类型共同的方法
* 例如:狗,人
*/
public interface Iproy {
public void call();
public void sleep();
}
2 . 实体类对这种类型的实现
/**
* 狗的实现类
*/
public class Dog implements Iproy {
@Override
public void call() {
System.out.println("狗在叫");
}
@Override
public void sleep() {
System.out.println("狗在睡觉");
}
}
/**
* 猫的实现类
*/
public class Cat implements Iproy {
@Override
public void call() {
System.out.println("猫在叫");
}
@Override
public void sleep() {
System.out.println("猫在睡觉");
}
}
3 .同过代理对实现类方法实现
/**
* 狗仗人势,咬人肯定不是人上的是狗了
*/
public class People implements Iproy {
private Iproy iProy;
public People(){
iProy = new Dog();
}
public People(Iproy iProy){
this.iProy=iProy;
}
@Override
public void call() {
iProy.call();
}
@Override
public void sleep() {
iProy.sleep();
}
}
4 . 方法的实现
public class Main {
private static People people,people2;
public static void main(String[] args) {
people = new People();
people.call();
people.sleep();
people2=new People(new Cat());
people2.call();
people2.sleep();
}
}