什么是静态代理?
-
静态代理是一种思想,找一个代理负责一些琐事,自己则专注于一件大事。
有哪些具体的表现?
-
在日常生活中做饭就是这样,会做饭的人需要做饭,那么其他的人就来帮他打杂,这样做饭的人就可以专注地做一件事,效率也会更高。
接下来,我们用代码来实现:
package lesson01;
public class StaticManagerDemo01 {
public static void main(String[] args) {
Chief chief = new Chief();
Helper helper = new Helper(chief);
helper.work();
}
}
interface Cook{
void work();//1.写一个接口
}
class Chief implements Cook{
@Override
public void work() {//实现接口,主厨要干哈?
for (int i = 0; i < 5; i++) {
System.out.println("我要做第"+i+"菜了");
}
}
}
class Helper implements Cook{
private Chief chief;
public Helper(Chief chief) {//传入主厨对象
this.chief = chief;
}
@Override
public void work() {//打下手的要干啥?
chief.work();//调用主厨的函数
System.out.println("菜做完了,该我端菜了");
}
}
总结:静态代理这个思想就是多个类继承一个接口,然后让一个类实现重要的功能,让其他类来扩展功能。
在线程中,thread就是运用了这样的思想:
-
通过实现Runnable接口来创建线程:
-
创建Class MyRunner 实现 Runnable 接口
-
Thread内置类实现的Runnable接口
-
所以启动线程时,new Thread(new MyRnner).start();
-