代理模式

使用场景:一个类不能、不合适直接调用另外一个类。或者调入另外一个类会污染本类。

类特点:1.创建接口,包含真实类要做的方法  2.创建真实类,代理类,都实现该接口 3.真实类中方法写具体内容实现

4.代理类中,创建真实类对象,代理类构造方法中返回真实类对象,代理类中继承的方法中:用真实类对象调用真实类中的方法。代理类还可以自定义一些其他方法,都要在继承的方法中调用。

一、接口类

public interface Hose {
    void rentHouse();
}

二、真实类

public class RealHousePerson implements Hose {
    @Override
    public void rentHouse() {
        System.out.println("房东要出租房子");
    }
}

三、代理类

 * @Description: 精华在于代理类  代理类创建时也创建了真实类,代理类有自己的方法,在调用代理方法时,除了调用真实类的方法,hai
 * 还调用了自己的方法。
 * 特点:替真实类完成了真实类不方便完成的事;真实类能更专注自己的业务
 *      如果客户想加一个新业务代理,那么必须创建新代理类和代理方法,不够灵活
 *
 *  升级:动态代理看不懂
 * @date 2019/11/714:56
 */
public class ProxyHousePerson implements Hose {

    private RealHousePerson realHousePerson=new RealHousePerson();

    ProxyHousePerson(){}

    ProxyHousePerson(RealHousePerson realHousePerson){
        this.realHousePerson=realHousePerson;
    }

    @Override
    public void rentHouse() {
       realHousePerson.rentHouse();
       seeHouse();
       managerHouse();
    }
    
    public void seeHouse(){
        System.out.println("中介带客户看房子");
    }
    public void managerHouse(){
        System.out.println("中介收房租,水电费");
    }
}

四、客户端

public class client {
    public static void main(String[] args){
        RealHousePerson realHousePerson=new RealHousePerson();

        ProxyHousePerson proxyHousePerson=new ProxyHousePerson(realHousePerson);
        proxyHousePerson.rentHouse();
    }
}

动态代理:没看懂。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值