一、概述
1.桥接模式的应用情况:(1)两个维度扩展(2)排列组合
二、代码
1.Gift.java
1 public class Gift { 2 3 protected GiftImpl giftImpl; 4 }
2.GiftImpl.java
1 public class GiftImpl { 2 3 }
3.WarmGift.java
1 public class WarmGift extends Gift { 2 3 public WarmGift(GiftImpl giftImpl) { 4 //调用父类的giftImpl 5 this.giftImpl = giftImpl; 6 } 7 8 @Override 9 public String toString() { 10 return this.getClass().getName()+"-----"+giftImpl.getClass().getName(); 11 } 12 }
4.WildGift.java
1 public class WildGift extends Gift { 2 3 public WildGift(GiftImpl giftImpl) { 4 //调用父类的giftImpl 5 this.giftImpl = giftImpl; 6 } 7 8 @Override 9 public String toString() { 10 return this.getClass().getName()+"-----"+giftImpl.getClass().getName(); 11 } 12 }
5.Flower.java
1 public class Flower extends GiftImpl { 2 3 }
6.Ring.java
1 public class Ring extends GiftImpl { 2 3 }
7.MM.java
1 public class MM { 2 3 private String name; 4 5 public String getName() { 6 return name; 7 } 8 9 public void setName(String name) { 10 this.name = name; 11 } 12 13 }
8.Boy.java
1 public class Boy { 2 3 private String name; 4 5 public void pursue(MM mm){ 6 Gift gift = new WildGift(new Flower()); 7 give(gift, mm); 8 System.out.println(gift); 9 } 10 11 public void give(Gift gift, MM mm) { 12 13 } 14 }
9.Test.java
1 public class Test { 2 3 @org.junit.Test 4 public void test() { 5 Boy b = new Boy(); 6 b.pursue(new MM()); 7 } 8 9 }
三、运行结果
原文:http://www.cnblogs.com/shamgod/p/4593597.html