一个接口,两个类体现代理模式
接口:
public interface BuySpicyStrips {
public void buySpicyStrips() ;
}
代理类:
//代理类
public class Friend implements BuySpicyStrips {
private BuySpicyStrips buySpicyStrips;
public Friend(BuySpicyStrips buySpicyStrips) {
this.buySpicyStrips = buySpicyStrips;
}
public void goShopping() {
System.out.println("朋友正在去商店。。。");
}
@Override
public void buySpicyStrips() {
goShopping();
buySpicyStrips.buySpicyStrips();
delivery();
}
public void delivery() {
System.out.println("朋友买到辣条正在送给吃货");
}
}
真正实现类:
//真实实现类
public class Shopowner implements BuySpicyStrips {
public void takeSpicyStrips() {
System.out.println("店长到辣条生产厂去进货。。。");
}
@Override
public void buySpicyStrips() {
takeSpicyStrips();
System.out.println("店长买到辣条");
sellSpicyStrips();
}
public void sellSpicyStrips() {
System.out.println("店长正在出售辣条");
}
}
测试:
public class Test {
public static void main(String agrs[]) {
BuySpicyStrips buy = new Friend(new Shopowner());
buy.buySpicyStrips();
}
}
结果: