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