静态代理模式
一个人在做一件事时,不能完完全全的考虑到多方面,也无法解决所有问题;此时,便需要外界的力量,来帮助他一起解决问题;而代理模式,就如同上面所说的情况;
案例:
小明要通过学习,来改变命运,自学时,有的知识点,小明并不能完完全全的理解;还有就是,自学一段时间后,他对于自己的能力,很不清楚;并且小明了解到找工作时,需要学历证书,但是这些通过自学,都是无法得到的;那如何解决?
小明的烦恼:实力评测,知识的梳理,学历证书…
可以通过:学校,这个外界力量来解决;
小明和学校都是以学习为目的,只是小明只管学习,而学校还可以完成实力评测,知识的梳理,学历证书颁发…这些功能
即静态代理模式:需要真实对象,代理对象,两者都实现同一功能,代理对象要帮助真实对象解决真实对象无法解决的事情
代码实现
//共同实现的功能
interface Learning {
void Study_Hardly();
}
//测试类
public class test {
public static void main(String[] args) {
School school = new School(new People());
school.Study_Hardly();
}
}
//真实对象
class People implements Learning{
@Override
public void Study_Hardly() {
System.out.println("努力学习,改变未来");
}
}
//代理对象
class School implements Learning{
private Learning learner;
public School(Learning learner) {
this.learner = learner;
}
@Override
public void Study_Hardly() {
pre();
learner.Study_Hardly();
havingTest();
}
private void havingTest() {
System.out.println("阶段性考察,期中考试,期末考试,放假");
}
private void pre() {
System.out.println("准备资料,书籍,宿舍,饮食.....");
}
}