淮安做网站找哪家公司,网络运营者,广东seo网站推广代运营,北京网站建设公司网络营销外包网络建站报价桥接模式#xff0c;就是把向多个方向发展的变化由继承的实现变为了耦合的实现。 package mode.bridge.test;/*** * 首先是一个抽象的咖啡类#xff0c;有一个抽象的倒咖啡的方法* * 在这个类中有一个咖啡伴侣的属性#xff0c;为什么会有这个属性。因为我们在冲咖啡的时候可…桥接模式就是把向多个方向发展的变化由继承的实现变为了耦合的实现。 package mode.bridge.test;/*** * 首先是一个抽象的咖啡类有一个抽象的倒咖啡的方法* * 在这个类中有一个咖啡伴侣的属性为什么会有这个属性。因为我们在冲咖啡的时候可能加入不同种类的咖啡伴侣也可能冲大杯的和小杯的咖啡。* 这样我们的咖啡就有了两个方向的变化大小和咖啡伴侣类型。我们的咖啡类控制自己的大小那么就将咖啡伴侣的类型交给其他类去控制而将控制* 伴侣的类变为自己的一个属性。 这样就把继承变成了耦合 这样我们就不必头疼通过继承去实现时成指数级增加的工作量了* * */
public abstract class CoffeeTest {//要在子类中使用所以定义为protectedprotected CoffeeImpTest coffeeImpTest;public void setCoffeeImpTest(CoffeeImpTest coffeeImpTest) {this.coffeeImpTest coffeeImpTest;}public abstract void pourCoffee();}package mode.bridge.test;/*** * 控制咖啡伴侣的类有一个加咖啡伴侣的方法* * */
public abstract class CoffeeImpTest {public abstract void pouerCoffeeImp();
}package mode.bridge.test;
/*** *加清香型伴侣* * */
public class CoffeeImpTestFragrant extends CoffeeImpTest {Overridepublic void pouerCoffeeImp() {System.out.println(清香型咖啡伴侣);}}package mode.bridge.test;
/*** * 加奶香型伴侣* * */
public class CoffeeImpTestMilk extends CoffeeImpTest {Overridepublic void pouerCoffeeImp() {System.out.println(奶香型咖啡伴侣);}}package mode.bridge.test;/*** * 弄一大杯咖啡* * */
public class CoffeeTestBig extends CoffeeTest {Overridepublic void pourCoffee() {System.out.print(冲了大杯咖啡 伴侣是:);//加入自己喜欢的伴侣this.coffeeImpTest.pouerCoffeeImp();}}package mode.bridge.test;/*** * 弄一小杯咖啡* * */
public class CoffeeTestSmall extends CoffeeTest {Overridepublic void pourCoffee() {System.out.print(冲了小杯咖啡 咖啡伴侣是:);//加入自己喜欢的伴侣this.coffeeImpTest.pouerCoffeeImp();}}package mode.bridge.test;/*** * * 在测试中我们可以冲大杯、小杯的咖啡并且可以随意加入我们喜欢的伴侣了* * */
public class Test {public static void main(String[] args) {// 来一大杯咖啡CoffeeTest coffBig new CoffeeTestBig();// 来一小杯咖啡CoffeeTest coffSmall new CoffeeTestSmall();// 大杯的咖啡我想加奶香型的咖啡伴侣coffBig.setCoffeeImpTest(new CoffeeImpTestMilk());coffBig.pourCoffee();// 小杯的咖啡我想加清香型的咖啡伴侣coffSmall.setCoffeeImpTest(new CoffeeImpTestFragrant());coffSmall.pourCoffee();}}