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

时间:2022-09-09 09:06:19

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

@Override
protected void makeMoney() {
product.produce();
product.sell();
}

}
package com.java.bridge;public class ElecCrop extends Crop {	public ElecCrop(Product product) {		super(product);	}	@Override	protected 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 {

@Override
protected void produce() {
System.out.println("服装生产过程是这样的...");
}

@Override
protected void sell() {
System.out.println("服装销售过程是这样的...");
}

}
package com.java.bridge;public class Elec extends Product {	@Override	protected void produce() {		System.out.println("电子产品生产过程是这样的...");	}	@Override	protected 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、测试结果:

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