美文网首页iOS学习笔记
设计模式-结构篇(代理模式)

设计模式-结构篇(代理模式)

作者: 小酷哥 | 来源:发表于2017-02-10 14:21 被阅读0次

    代理模式:

    一个类代表另一个类的功能

    有些事情本应该是你做的,但是你不想做或者不方便做的时候,叫别人替你完成.

    静态代理
    动态代理

    /**
     * Created by malei on 2016/12/6.
     * 代理人, 由于需要帮委托人带饭, 也必须实现午饭接口
     */
    public class ProxyMan implements Lunch {
    
        private final You mYou;
    
        public ProxyMan(You you) {
            mYou = you;
        }
        @Override
        public void eat() {
            mYou.eat();
        }
    
        //静态代理
        public static void main(String[] ages){
            You you = new You();
            ProxyMan man = new ProxyMan(you);
            man.eat();
        }
    
        //动态代理
        public static void main2(String[] ages){
            You you = new You();
            Lunch people = (Lunch) Proxy.newProxyInstance(
                                              you.getClass().getClassLoader(),
                                              new Class[]{Lunch.class},
                                              new InvocationHandler() {
                        @Override
                        public Object invoke(Object proxy, Method method, 
                                      Object[] args) throws Throwable {
                            return method.invoke(you,args);
                        }
                    });
            people.eat();
        }
    }
    
    /**
     * Created by malei on 2016/12/6.
     */
    public class You implements Lunch {
    
        @Override
        public void eat() {
            Log.show("我要吃小炒肝尖!");
        }
    }
    
    /**
     * Created by malei on 2016/12/6.
     * 午饭的规范
     */
    public interface Lunch {
        void eat();
    }
    
    

    相关文章

      网友评论

        本文标题:设计模式-结构篇(代理模式)

        本文链接:https://www.haomeiwen.com/subject/hivgittx.html