二、具体实现
1,
代理对象类:商城
接口:进货、卖货
被代理类:卖衣服的、卖书的、卖吃的
2,代码实现
接口-被代理的行为-交易
public interface ITrade{ public void sale(); public void purchase(); }
被代理类-商家
public class ClothingStore implements ITrade{ public void sale(){ System.out.println("i was selling clothes "); } public void purchase(){ System.out.println("i was buying clothes"); } } public class FoodStore implements ITrade{ //进货小吃 //出售小吃 } public class BookStore() implements ITrade{ //进书 //卖书 }
代理类-商城
public class Store implements ITrade{ private ITrade trade; public Store(){ //商城的本家是卖书的 this.trade=new SaleBook(); } public Store(ITrade trade){ this.trade=trade; } /** *代理实现 */ public void sale(){ this.trade.sale(); } public void purchase(){ this.trade.purchase(); } }
交易者
public class Swapper{ public static void main(String args[]){ //交易书--进入商城然后交易 //代理-商城默认代理的是书 Store bs=new Store(); bs.sale(); bs.purchase(); //交易食品 //出现食品卖家,加入商城(被其代理),交易 FoodStore fs=new FoodStore(); Store fss=new Store(fs); fss.sale(); fss.purchase(); } }