静态代理模式

在静态代理这块我举个例子如我们在mvp的模式中,  静态代理动态代理都要用   p 绑定 v, p 解绑 v 。我在这里用一小段代码来阐释下,静态代理是怎么样的。
我拿餐馆举例子。去餐馆我们肯定要去吃饭,然后厨师会给我做我们需要的饭,但我们要吃什么饭,我们得自己来说,厨师只能在你说了什么菜之后,才能做饭。
在这里我们先去创建一个接口类来,IRestaurant代码如下

public interface IRestaurant {
 void  applySomeThing();
}

我们在去创建一个自己,Man类,去实现这个接口


public class Man  implements IRestaurant {
    @Override
    public void applySomeThing() {
        System.out.print("我要吃肉");
    }
}

我们还需要一个厨师类Chef

public class Chef implements IRestaurant {

    private IRestaurant mIRestaurant;
    public Chef(IRestaurant iRestaurant) {
        this.mIRestaurant = iRestaurant;
    }
    @Override
    public void applySomeThing() {
        mIRestaurant.applySomeThing();
        System.out.print("我去做饭");
    }
}

在创建厨师类的时候,我们需要给他一个IRestaurant 的对象,在他要做一些事情的时候,这个对象去调用这个对象的本身的方法。Chef就代替了Man类做了一些事情。
在需要调用的地方我们这样写就实现了这个静态代理。

           Man man=  new Man();
            Chef chef = new Chef(man);
            chef.applySomeThing();

但是我们在IRestaurant 里面再去添加一个方法的话,在Man和Chef里面又会多一个方法,慢慢的就会导致代码量很大。在这里我们就会用动态代理来解决这个问题。下一篇我会写一下这个动态代理,大家可以去看我的动态代理这篇文章

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 代理模式,可以分为两种,一种是静态代理,一种是动态代理。两种代理从虚拟机加载类的角度来讲,本质上都是一样的,都是在...
    激情的狼王阅读 2,156评论 0 0
  • 静态代理模式定义 为其他对象对象提供一种代理以控制对这个对象的访问。 Subject:定义了RealSubject...
    Leon_hy阅读 271评论 0 1
  • 一、代理模式概要 代理模式通常包括三部分1、 抽象角色:声明真实对象和代理对象的共同接口(或者抽象类);2、 代理...
    鉴闻俗说阅读 142评论 0 0
  • 又是春风如剪,又是植树季节。又是欢声笑语,又是红男绿女,又是热火朝天的劳动场面。 总之,植树节是一个放风的日子。这...
    姜辣素阅读 220评论 0 0
  • 多少次,我们因为不好意思而从了别人,放弃了做真实自己的机会。 人本来就是一种会塑造自己形象的生物,我们在生活中会不...
    永远的迷之喵喵阅读 368评论 0 5

友情链接更多精彩内容