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模式一章中,里画了两张图,一看就明白了
不过他让我写出典型代码我就不知所措了
持有一个复杂类的引用
在抽象出的简单的接口的实现中,调用复杂类的方法
这么实现有点疑惑,怎么有点像适配模式呀
不同的模式有不同的问题域
应该有不同的解决方案呀,我怎么看起来有些方案相同呀
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模式一章中,里画了两张图,一看就明白了
不过他让我写出典型代码我就不知所措了
持有一个复杂类的引用
在抽象出的简单的接口的实现中,调用复杂类的方法
这么实现有点疑惑,怎么有点像适配模式呀
不同的模式有不同的问题域
应该有不同的解决方案呀,我怎么看起来有些方案相同呀