| 
 | 
 
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册  
 
x
 
桥梁模式是为了弥补继承的缺陷! 大家知道,继承有一个缺陷就是它的耦合性比较强,所以,桥梁模式就解决了这个问题! 这使得对象之间有很弱的关联性,很好的扩展性;我们以公司为例先看一下图: 
 
 
 
 
从图中可以看出,corp是公司的抽象,而不管是什么公司,都会有产品的,所以poduct是产品的抽象; 
corp类的下面有两个类,也就是两个公司,poduct类的下面也有两个类,也就是产品的类; 
公司的最终目的就是赚钱,所以在corp里面定义一个赚钱的方法: 
- public abstract class Corp
 
 - {
 
 -    private Product product;
 
 -    public Corp(Product product)
 
 -    {
 
 -       this.product = product;
 
 -    }
 
  
-    //赚钱
 
 -    public void makeMoney()
 
 -    {
 
 -       this.product.beProducted();
 
 -       this.product.beSelled();
 
 -    }
 
 - }
 
 
  复制代码 那赚钱的话,使用产品去赚钱的,所以还得来一个product: 
 
 
- public abstract class Product
 
 - {
 
 -    //不管是什么产品它总是能被生产出来
 
 -    public abstract void beProducted();
 
 -    //生产出来的东西,一定要销售出去
 
 -    public abstract void beSelled();
 
 - }
 
 
  复制代码 
 
然后就是继承corp的两个公司了: 
 
 
- public class HouseCorp extends Corp
 
 - {
 
 -     //定义传递一个house产品进来
 
 -     public HouseCorp(House house)
 
 -     {
 
 -        super(house);
 
 -     }
 
  
-     //赚钱
 
 -     public void makeMoney()
 
 -     {
 
 -        super.makeMoney();
 
 -        System.out.println("房地产公司赚钱了....");
 
 -     }
 
 - }
 
 
  复制代码- public class ShanZhaiCorp extends Corp
 
 - {
 
 -     public ShanZhaiCorp(Product product)
 
 -     {
 
 -         super(product);
 
 -     }
 
  
-     public void makeMoney()
 
 -     {
 
 -        super.makeMoney();
 
 -        System.out.println("小白马赚钱了...");
 
 -     }
 
 - }
 
 
  复制代码 
然后就是继承product的两个产品类: 
 
 
- public class House extends Product
 
 - {
 
 -     //被生产出来的房子
 
 -     public void beProducted()
 
 -     {
 
 -        System.out.println("生产出的房子是这样的...");
 
 -     }
 
  
-     public void beSelled()
 
 -     {
 
 -        System.out.println("生产出的房子卖出去...");
 
 -     }
 
  
- }
 
 
  复制代码- public class IPod extends Product
 
 - {
 
 -    public void beProducted()
 
 -    {
 
 -       System.out.println("生产出的ipod是这个样子的...");
 
 -    }
 
 -    public void beSelled()
 
 -    {
 
 -       System.out.println("生产出的ipod卖出去了...");
 
 -    }
 
 - }
 
 
  复制代码 现在公司也有了! 产品也有了! 
就剩下操作这些的一个client类了: 
- public class Client
 
 - {
 
 -    public static void main(String args[])
 
 -    {
 
 -       House house = new House();
 
 -       System.out.println("-------房地产公司是这个样子运行的-------");
 
 -       //先找到我的公司
 
 -       HouseCorp houseCorp = new HouseCorp(house);
 
 -       houseCorp.makeMoney();
 
 -       System.out.println("\n");
 
  
-      //山寨公司的产品很多,不过我们只要指定产品就行了
 
 -      ShanZhaiCorp shanZhaiCorp = new ShanZhaiCorp(new Clothes());
 
 -      shanZhaiCorp.makeMoney();
 
  
-    }
 
 - }
 
 
  复制代码 
运行结果: 
 
 
 
 
 
 
 
 
 |   
 
评分
- 
查看全部评分
 
 
 
 
 
 |