设计模式之桥梁(桥接)模式

来源:互联网 发布:青岛淘宝代理 编辑:程序博客网 时间:2024/05/21 19:25

描述:桥接模式最大特点是抽象与实现解耦,不对现有的类进行修改,只需要扩展(继承当前抽象类)即可实现业务逻辑。抛出的例子是现在有服装公司生产销售并服装盈利,电子公司生产电子产品销售并盈利,那我以后增加房地产公司就只需要继承Crop和Product就可以实现买房子销售盈利。


UML类图:



测试代码

1、抽象Crop类

package com.java.bridge;public abstract class Crop {protected Product product;public Crop(Product product) {this.product = product;}protected abstract void makeMoney();}

2、具体Crop

package com.java.bridge;public class ClothesCrop extends Crop {public ClothesCrop(Product product) {super(product);}@Overrideprotected void makeMoney() {product.produce();product.sell();}}
package com.java.bridge;public class ElecCrop extends Crop {public ElecCrop(Product product) {super(product);}@Overrideprotected void makeMoney() {product.produce();product.sell();}}

3、抽象Product类

package com.java.bridge;public abstract class Product {protected abstract void produce();protected abstract void sell();}

4、具体Product
package com.java.bridge;public class Clothes extends Product {@Overrideprotected void produce() {System.out.println("服装生产过程是这样的...");}@Overrideprotected void sell() {System.out.println("服装销售过程是这样的...");}}
package com.java.bridge;public class Elec extends Product {@Overrideprotected void produce() {System.out.println("电子产品生产过程是这样的...");}@Overrideprotected void sell() {System.out.println("电子产品销售过程是这样的...");}}

5、测试类

package com.java.bridge;public class BridgeTest {public static void main(String[] args) {//服装公司Clothes cs = new Clothes();ClothesCrop ccp = new ClothesCrop(cs);ccp.makeMoney();//电子公司Elec elec = new Elec();ElecCrop ep = new ElecCrop(elec);ep.makeMoney();}}

6、测试结果:

服装生产过程是这样的...服装销售过程是这样的...电子产品生产过程是这样的...电子产品销售过程是这样的...


原创粉丝点击