Bridge桥接模式

Bridge_Model

 

源码:

 

 

package bridge;

public abstract class Coffee {
	
	@SuppressWarnings("unused")
	private CoffeeImpl coffeeImpl;

	public Coffee(CoffeeImpl _coffeeImpl) {
		this.coffeeImpl = _coffeeImpl;
	}

	//大杯、中杯
	public abstract String pourCoffee();
}
 

 

 

package bridge;

public interface CoffeeImpl {
	
	//加牛奶、不加牛奶
	public String pourCoffeeImpl();
}
 

 

package bridge;

public class MediumCoffee extends Coffee {

	public MediumCoffee(CoffeeImpl _coffeeImpl) {
		super(_coffeeImpl);
	}

	@Override
	public String pourCoffee() {
		return "中杯";
	}
}
 

package bridge;

public class SuperSizeCoffee extends Coffee {

	public SuperSizeCoffee(CoffeeImpl _coffeeImpl) {
		super(_coffeeImpl);
	}
	
	@Override
	public String pourCoffee() {
		return "大杯";
	}
}
 

package bridge;

public class MilkCoffee implements CoffeeImpl {
	
	public String pourCoffeeImpl() {
		return " + 牛奶";
	}
}
 

package bridge;

public class FragrantCoffee implements CoffeeImpl {
	
	public String pourCoffeeImpl() {
		return " ";
	}
}
 

package bridge;

public class Test_coffee {
	public static void main(String[] args) {
		
		// 加牛奶,依次中杯、大杯
		CoffeeImpl milk = new MilkCoffee();
		Coffee milkMediumCoffee = new MediumCoffee(milk);
		System.out.println(milkMediumCoffee.pourCoffee() 
							+ " " 
							+ milk.pourCoffeeImpl());
		Coffee milkSuperSizeCoffee = new SuperSizeCoffee(milk);
		System.out.println(milkSuperSizeCoffee.pourCoffee() 
				+ " " 
				+ milk.pourCoffeeImpl());
		
		// 不加牛奶,依次中杯、大杯
		CoffeeImpl nomilk = new FragrantCoffee();
		Coffee mediumCoffee = new MediumCoffee(milk);
		System.out.println(mediumCoffee.pourCoffee() 
							+ " " 
							+ nomilk.pourCoffeeImpl());
		Coffee superSizeCoffee = new SuperSizeCoffee(milk);
		System.out.println(superSizeCoffee.pourCoffee() 
				+ " " 
				+ nomilk.pourCoffeeImpl());
	}
}
 

结果:

中杯  + 牛奶
大杯  + 牛奶
中杯  
大杯  
 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值