代理模式

   意图:为其他对象提供一种代理以控制对这个对象的访问。
   何时使用:想在访问一个类时做一些控制。
   如何解决:增加中间层。
   关键代码:实现与被代理类组合。
   优点: 1、职责清晰。 2、高扩展性。 3、智能化
   缺点: 1、由于在客户端和真实主题之间增加了代理对象,因此有些类型的代理模式可能会造成请求的处理速度变慢。
         2、实现代理模式需要额外的工作,有些代理模式的实现非常复杂。 
              
    //is-a;继承
    //is-like-a:实现
    //has-a:拥有
    
    // class B{
    // A a = new A();
    //  a.b();
    // }

    //class B{
    // public void b(A a){
    //A类对象作为参数
    // }
    // }

举例说明:

公司类:(创建一个接口)

package com.feisi.company;

public interface Company {

public  void getMoney();
}

当事人类:(创建实现接口的实体类。)

package com.feisi.company;
public class Human implements Company {

public void getMoney(){
    System.out.println("当事人需要讨债100w");
}
}

代理人类:(当被请求时,使用 Proxy 来获取 Human类的对象)

package com.feisi.company;

public class Proxy implements Company{

Company company;//父类引用

public Proxy(Company company){
 this.company = company;//Proxy构造方法
}

public void getMoney(){
  company.getMoney();
}

}

测试类:

package com.feisi.company;

public class Test extends Human{
public static void main(String[] args) {

   Company company = new Human();

   Proxy proxy = new Proxy(company);
   proxy.getMoney();

  
}

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值