zoukankan      html  css  js  c++  java
  • 动态代理

     1 package DynamicProxy;
     2 
     3 import java.lang.reflect.InvocationHandler;
     4 import java.lang.reflect.Method;
     5 import java.lang.reflect.Proxy;
     6 
     7 interface AbstractClass {
     8     public void show();
     9 }
    10 
    11 class ClassA implements AbstractClass {
    12     public void show() {
    13         System.out.println("I am A !");
    14     }
    15 }
    16 
    17 class ClassB implements AbstractClass {
    18     public void show() {
    19         System.out.println("I am B !");
    20     }
    21 }
    22 
    23 class Invoker implements InvocationHandler {
    24     AbstractClass ac;
    25     public Invoker(AbstractClass ac) {
    26         this.ac = ac;
    27     }
    28     
    29     @Override
    30     public Object invoke(Object proxy, Method method, Object[] args)
    31             throws Throwable {
    32         method.invoke(ac, args);
    33         return null;
    34     }
    35     
    36 }
    37 
    38 public class DynamicProxyTest {
    39     public static void main(String[] args) {
    40         
    41         Invoker invoker1 = new Invoker(new ClassA());
    42         AbstractClass ac1 = (AbstractClass) Proxy.newProxyInstance(AbstractClass.class.getClassLoader(), new Class[] {AbstractClass.class}, invoker1);
    43         ac1.show();
    44         
    45         Invoker invoker2 = new Invoker(new ClassB());
    46         AbstractClass ac2 = (AbstractClass) Proxy.newProxyInstance(AbstractClass.class.getClassLoader(), new Class[] {AbstractClass.class}, invoker2);
    47         ac2.show();
    48     }
    49 }
    我喜欢一无所有,这样就只能一步一步的创造世界...
  • 相关阅读:
    「SOL」开关(LOJ)
    「SOL」星际迷航(LOJ)
    「NOTE」概率生成函数
    「SOL」谢特(LOJ)
    「SOL」重建计划(BZOJ)
    「SOL」Tug of War(洛谷)
    「SOL」同余方程(LOJ)
    「SOL」Bad Cryptography(Codeforces)
    「SOL」小A与两位神仙(洛谷)
    「SOL」Social Distance(AtCoder)
  • 原文地址:https://www.cnblogs.com/riordon/p/4018337.html
Copyright © 2011-2022 走看看