java bridge设计模式

来源:互联网 发布:中国碳纤维技术 知乎 编辑:程序博客网 时间:2024/05/22 06:32

简单的设计图:

代码的实现:

Java代码 复制代码 收藏代码
  1. package bridge; 
  2.  
  3. public abstractclass Clothing { 
  4.     /**
  5.      * 抽象方法
  6.      * @param person
  7.      */ 
  8.     public abstractvoid dressCloth(Person person); 

Java代码 复制代码 收藏代码
  1. package bridge; 
  2.  
  3. public class Jacketextends Clothing { 
  4.  
  5.     @Override 
  6.     public void dressCloth(Person person) { 
  7.         // TODO Auto-generated method stub 
  8.         System.out.println(person.getType() + "穿上马甲!"); 
  9.     } 
  10.  

Java代码 复制代码 收藏代码
  1. package bridge; 
  2.  
  3. public class Trouserextends Clothing { 
  4.  
  5.     @Override 
  6.     public void dressCloth(Person person) { 
  7.         // TODO Auto-generated method stub 
  8.         System.out.println(person.getType() + "穿上裤子!"); 
  9.     } 
  10.  

Java代码 复制代码 收藏代码
  1. package bridge; 
  2.  
  3. public abstractclass Person { 
  4.     private String type; 
  5.     private Clothing clothing; 
  6.  
  7.     public String getType() { 
  8.         return type; 
  9.     } 
  10.  
  11.     public void setType(String type) { 
  12.         this.type = type; 
  13.     } 
  14.  
  15.     public Clothing getClothing() { 
  16.         return clothing; 
  17.     } 
  18.  
  19.     public void setClothing(Clothing clothing) { 
  20.         this.clothing = clothing; 
  21.     } 
  22.      
  23.     //抽象方法 
  24.     public abstractvoid dress(); 

Java代码 复制代码 收藏代码
  1. package bridge; 
  2.  
  3. public class Manextends Person { 
  4.  
  5.     public Man() 
  6.     { 
  7.         setType("男人"); 
  8.     } 
  9.      
  10.     @Override 
  11.     public void dress() { 
  12.         getClothing().dressCloth(this); 
  13.     } 
  14.  

Java代码 复制代码 收藏代码
  1. package bridge; 
  2.  
  3. public class Womanextends Person { 
  4.  
  5.     public Woman() 
  6.     { 
  7.         setType("女人"); 
  8.     } 
  9.      
  10.     @Override 
  11.     public void dress() { 
  12.         getClothing().dressCloth(this); 
  13.     } 
  14.  

Java代码 复制代码 收藏代码
  1. package bridge; 
  2.  
  3. public class ClientTest { 
  4.  
  5.     /**
  6.      * @param args
  7.      */ 
  8.     public staticvoid main(String[] args) { 
  9.         //两类人 
  10.         Person man = new Man();         
  11.         Person lady = new Woman(); 
  12.         //两种衣服的类 
  13.         Clothing jacket = new Jacket();         
  14.         Clothing trouser = new Trouser(); 
  15.  
  16.         jacket.dressCloth(man); 
  17.         trouser.dressCloth(man); 
  18.         jacket.dressCloth(lady); 
  19.         trouser.dressCloth(lady); 
  20.     } 
  21.  
原创粉丝点击