interface Isubject{ void buyAJ(); } class realsubject implements Isubject{ public void buyAJ(){ System.out.println("买一双AJ,在代购平台付款"); } } class proxysubject implements Isubject{ private Isubject subject; //这里也是一样,方法名称与类名相同,相当于构造方法,没有返回值,甚至连void也没有,相当于new public proxysubject(Isubject subject){ this.subject=subject; } public void beforebuy(){ System.out.println("去美国AJ专卖店排队抽号"); } public void afterbuy(){ System.out.println("快递到客户手上"); } //这里切记一定过程方法一定要是buyAJ的形式,不能用其他字符名字来代替 //代购:代理,真实客户,还有接口,其中接口只是定义了一个较为抽象的方法,该方法由真实客户去重写,并且在代理类中去完善方法 //也就是要在代理中去具体实现方法,其中传递实例对象是通过代理类的构造方法传入实例,其中,首先要在代理中private一个接口的的 // 对象,然后再将主方法中实例出来的对象传递给它,this .接口对象=实例对象,这都是在代理的构造方法中传入的,构造方法的参数 //列表内,形参是 接口.对象名称,一旦传入了实例对象就可以在代理类中去具体“代理方法”,也就是经过 接口定义方法->真实操作的方法->代理方法 //来逐步完善 buy something(). public void buyAJ(){ beforebuy(); subject. buyAJ(); afterbuy(); } } public class Test{ public static void main(String[] args) { Isubject subject=new proxysubject(new realsubject() ); subject.buyAJ(); } }
运行结果: