美文网首页
代理模式

代理模式

作者: 嗨嗨小白兔 | 来源:发表于2017-08-12 12:29 被阅读0次

    代理模式:当客户端无法直接访问某个对象或者访问困难时,使用代理模式。代理模式就是建立一个和原对象有相同功能的新对象,但是在新对象内部可以含有比原对象多的方法。访问代理之后的新对象,就跟访问原对象一样。

    比如:房东出租房子,房东需要跟租户签合同,跟租户收佣金,出租房子。现在有了中介代理人之后,租客不需要跟房东直接接触,房东不需要直接跟租户签合同,收佣金,出租房子,房东只需要跟中介代理人接触,同样,租客也要跟代理人接触,这个代理人对于租客,就像房东一样。

    代码示例:

    房东和代理人有同样的功能,出租房子。这两个角色需要继承自同一个抽象类,这个类中含有一个方法,出租房子。

    相同功能的抽象类:

    public abstract class RentHouse {

    public abstract void rentHouse();

    }

    房东原对象:

    public class Landlord extends RentHouse{

    public void rentHouse(){

    System.out.println("landlord rent the house");

    }

    }

    签订合同:

    public class Contract {

    public void signContract(){

    System.out.println("sign contract");

    }

    }

    收租金:

    public class Rent {

    public void getRent(){

    System.out.println("get Rent");

    }

    }

    代理人新对象:

    public class AgencyProxy extends RentHouse {

    private Landlord landlord;

    private Contract contract;

    private Rent rent;

    public AgencyProxy(){

    landlord = new Landlord();

    contract = new Contract();

    rent = new Rent();

    }

    @Override

    public void rentHouse() {

    contract.signContract();

    landlord.rentHouse();

    rent.getRent();

    }

    }

    测试:

    AgencyProxy agency = new AgencyProxy();

    agency.rentHouse();

    相关文章

      网友评论

          本文标题:代理模式

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