Java-马士兵设计模式学习笔记-桥接模式

一、概述

1.桥接模式的应用情况:(1)两个维度扩展(2)排列组合

 

二、代码

Java-马士兵设计模式学习笔记-桥接模式

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 }

 

三、运行结果

 

你可能感兴趣的:(java)