马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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();
}
}
运行结果:
|