这个例子取自Thinking in Java book。
class FilterAdapter implements Processor {
Filter filter;
public FilterAdapter(Filter filter) {
this.filter = filter;
}
public String name() { return filter.name(); }
public Waveform process(Object input) {
return filter.process((Waveform)input);
}
}
然后,当仔细检查这段代码时,作者引起我们的注意,我们可能会注意到FilterAdapter类中的委托。
你可以帮我理解是什么意思吗?我已经阅读了30次此代码,看不到任何特别的内容。根据维基百科,“委托是指一个依赖另一个对象提供一组特定功能的对象”。好吧,我在这里找不到这样的东西。非常感谢您的帮助。答案 0 :(得分:2)
要实现name()
,适配器委托给Filter.name()
。
要实现process()
,适配器委托给Filter.process()
。
如果不是委托,那是什么? 一个对象(适配器)依赖于另一个(过滤器)来提供一组指定的功能(name()
和{{ 1}})。
答案 1 :(得分:0)
filter
传递到FilterAdapter
。然后,对process的调用将处理委托给此过滤器。
您可以使用不同的过滤器实现,并使用相同的FilterAdapter类来调用所有过滤器。