- 个人理解:静态代理就是使用一个中间者帮助同一个接口的所有的实现类去实现某一个功能。
代码如下:
package wxtest.proxy; public interface Character { public void run(); public void eat(); } 父接口
class Person implements Character { private String name; private int age; public Person(String name) { this.name = name; } @Override public void run() { System.out.println(name + "自身的"); } @Override public void eat() { }
实现Character的类 如果要实现整个代理过程 那个代理类也要实现该接口
/** * 设计模式之静态代理 * 1:思路:所有共性的类用一个中间代理去完成 那个这个中间代理也需要实现共性类所继承的接口 */ public class staticProxy implements Character { Person person; public staticProxy(Person person) { this.person = person; } @Override public void run() { person.run(); } @Override public void eat() { } }
测试结果
public static void main(String[] args) { Person person = new Person("jack"); staticProxy ss = new staticProxy(person); ss.run(); }
输出结果如下:
Disconnected from the target VM, address: '127.0.0.1:64149', transport: 'socket'
jack自身的