设计模式之桥梁(桥接)模式
来源:互联网 发布:青岛淘宝代理 编辑:程序博客网 时间: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、测试结果:
服装生产过程是这样的...服装销售过程是这样的...电子产品生产过程是这样的...电子产品销售过程是这样的...
阅读全文
0 0
- 设计模式之桥梁(桥接)模式
- 设计模式之-桥梁模式
- 设计模式之桥梁模式
- 设计模式之桥梁模式
- 设计模式之桥梁模式
- 设计模式之桥梁模式
- 设计模式之桥梁模式
- PHP-设计模式之-桥接模式(桥梁模式)
- java设计模式之桥梁
- 设计模式C++之十一(Bridge桥梁模式)
- 设计模式之23桥梁模式(笔记)
- java设计模式之桥梁模式(10)
- 《您的设计模式》(CBF4LIFE)之“桥梁模式”【整理】
- (十三)Java设计模式之桥梁模式
- 二十三 设计模式之桥梁模式
- 【设计模式】之 Bridge 桥梁模式
- java设计模式之桥梁模式
- Java设计模式笔记之桥梁模式
- leetcode_reverse_integer
- Linux unit9-apache
- restlet导出csv格式文件,以及restlet插件调用
- 「敏捷开发」适合什么样的团队
- 双坐标轴
- 设计模式之桥梁(桥接)模式
- [OpenCV] cv::Mat to IplImage*
- 全国各城市代码
- typedef理解
- Maven实战(四)--坐标
- 行为型模式之访问者模式(Visitor)
- 和为 s 的连续正整数序列
- JVM 优化经验总结
- thinkphp 分页 修改分页样式