桥接模式
来源:互联网 发布:淘宝差评时间 编辑:程序博客网 时间:2024/06/16 10:12
一句话定义
将多维度进行分离,使能够独立的各自变化。如抽象和实现分离
使用场景
一个类存在多个需要扩展的的维度
实现要点
1.抽象类依赖实现2.不同的子类、不同的实现类,分别实现扩展
情景假设
进行基金定投,投入金额可扩展,投的基金也是动态的,这里就可以使用桥接模式。
实现步骤
1.创建金额接口
/** * 金额接口 * * @author fengzhen * @version 1.0, 2017/6/1 */public interface Money { /** * 获取金额 */ String eachMoney();}
2.创建具体金额实现类,实现基金接口。分别10元,50元。
/** * 10元定投 * * @author fengzhen * @version 1.0, 2017/6/1 */public class TenMoneyImpl implements Money{ @Override public String eachMoney() { return "10元"; }}
/** * 50元定投 * * @author fengzhen * @version 1.0, 2017/6/1 */public class FiftyMoneyImpl implements Money{ @Override public String eachMoney() { return "50元"; }}
3.创建定投基金抽象类,依赖金额接口
/** * 基金抽象类 * * @author fengzhen * @version 1.0, 2017/6/1 */public abstract class Fund { // 依赖接口 protected Money mMoney; public Fund(Money mMoney) { this.mMoney = mMoney; } /** * 基本信息 */ public abstract void info();}
4.创建具体定投类,集成抽象基金类。国泰和汇丰两只基金
/** * 国泰基金定投 * * @author fengzhen * @version 1.0, 2017/6/1 */public class GuoTaiFund extends Fund{ public GuoTaiFund(Money mMoney) { super(mMoney); } @Override public void info() { Log.i("info", "info: ==++ 国泰基金定投" + mMoney.eachMoney()); }}
/** * 汇丰基金定投 * * @author fengzhen * @version 1.0, 2017/6/1 */public class HuiFengFund extends Fund { public HuiFengFund(Money mMoney) { super(mMoney); } @Override public void info() { Log.i("info", "info: ==++ 汇丰基金定投" + mMoney.eachMoney()); }}
5.动态配置基金
// 创建具体的金额 TenMoneyImpl tenMoney = new TenMoneyImpl(); FiftyMoneyImpl fiftyMoney = new FiftyMoneyImpl(); // 创建不同的定投基金 GuoTaiFund guoTaiFund = new GuoTaiFund(tenMoney); HuiFengFund huiFengFund = new HuiFengFund(fiftyMoney); // 打印基本信息 guoTaiFund.info(); huiFengFund.info();
如此,将不同维度的价格和种类分离,能够各自单独进行扩展。
阅读全文
0 0
- 设计模式:适配器模式,桥接模式
- 设计模式----桥接模式
- 设计模式---桥接模式
- 结构性模式-桥接模式
- 设计模式:桥接模式
- 设计模式 桥接模式
- 设计模式 - 桥接模式
- 设计模式--桥接模式
- 设计模式--桥接模式
- 设计模式 - 桥接模式
- 设计模式-桥接模式
- 设计模式 - 桥接模式
- 设计模式 - 桥接模式
- 【设计模式-桥接模式】
- 设计模式:桥接模式
- 【设计模式】----桥接模式
- 【设计模式】桥接模式
- 设计模式--桥接模式
- 缓存雪崩和缓存穿透
- Centos 7 Apache,php,MariaDB,FTP的卸载方法
- 程序员常用远程工具有哪些?
- 分享一个深度系统/Ubuntu/linux系统下的VPN连接工具
- 终于开博啦~
- 桥接模式
- sql索引
- 动态设置控件属性的值
- Centos 7 FTP(vsftp)服务安装及配置
- 6、spring-boot 定时任务和异步实现
- 异常处理
- C语言求1000以内守形数
- gradle 参数配置监听
- Gradle构建脚本基础