代理类——java理解

代理模式:代购,代练

特点:一个接口,两个子类,其中一个子类负责完成真实业务,另一个子类辅助之

代理类中:

1.需要传入真实业务对象,代理类需要知道真实客户是谁,完成真实业务是由真实对象来完成,代理制需要辅助之(掏钱是客户,并不是代购)通过构造方法传入(下订单时,商家已经知道客户是谁)

2.传入的是接口对象,只要是接口中定义的业务,代理类都可以进行代理,(只要是买电脑,代购都可以处理,入传入真实类,则只能导购真实品牌电脑)

代码如下:

interface Isubject{

//买电脑

void buyComputer();

}

//真实主题类,真正要买电脑的对象

class RealSubject implements Isubject{

public void buyComputer(){

System.out.println("买一台mac电脑,付钱");

}

}

//代理类需要传入一个真实用户

class RealxySubject implements Isubject{

private Isubject realSubject;

public RealxySubject(Isubject realSubject){

this.realSubject=realSubject;

}

public void beforBuyconputer(){

System.out.println("去美国排队");

}

public void buyComputer(){

this.beforBuyconputer();

//真实业务,买电脑,掏钱

this.realSubject.buyComputer();

this.afterBuyconputer();

}

public void afterBuyconputer(){

System.out.println("邮寄回中国");

}

}

public class Test322{

public static void main(String [] args){

//下订单

Isubject subject = new RealxySubject(new RealSubject());

subject.buyComputer();//通过代理类的构造方法,将真实对象传进去

}

}


 

猜你喜欢

转载自blog.csdn.net/qq_41832361/article/details/88716511