bridge 桥接模式

1,解释 桥接模式

2,log4j用了什么模式
写出两种单例模式

3,写出facade模式的
典型代码

很高兴他们会问模式,虽然我有些没有答出来
其中桥接模式我没有答出来
回来后,我看了下,原来我看过好几次的,是抽象与行为分离
问题形象描述:
小杯咖啡加牛奶 小杯咖啡不加牛奶
中杯咖啡加牛奶 中杯咖啡不加牛奶
大杯咖啡加牛奶 大杯咖啡不加牛奶

问题的可变元素 不加牛奶而是加葡萄果汁呢
那么是不是又有很多种呢
有没有办法解决呢,桥接模式
类 咖啡
属性(抽象),杯子
行为,加牛奶
把他们分离,这就是桥接模式(将属性与行为解耦)

对抽象编程
责任划分,把加牛奶\不加牛奶这种行为,划分给谁合适呢
这是个要考虑的问题,这个每个人的想法不同,理由不同,可做不同的设计
下面代码过程中,我们主要关注属性怎么与行为分离
public abstract class Coffee{
private CoffeeImpl coffeeImpl;

//需要加把coffeeImpl实例化了

public void pour(){
coffeeImpl.pour();
}
}

public interface class CoffeeImpl{
public void pour();
}


public MilkCoffeeImpl implements CoffeeImpl{
public void pour(){
System.out.println("我是要加牛奶的");
}
}
桥接模式,看看名字,我想我们应该能想得到,那个是桥,为什么是桥,怎么桥接的
如果把杯子大小抽象为属性
那么好像跟策略模式有些相似呀,简直一模一样呀

log4j,是全局的,还有管理日记资源的,所以很容易想到是单例模式的

facade模式
就有理清关系和能提供简单接口的功能呀
banq书的facade模式一章中,里画了两张图,一看就明白了
不过他让我写出典型代码我就不知所措了

持有一个复杂类的引用
在抽象出的简单的接口的实现中,调用复杂类的方法

这么实现有点疑惑,怎么有点像适配模式呀

不同的模式有不同的问题域
应该有不同的解决方案呀,我怎么看起来有些方案相同呀
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值