通常我会遇到一个给定对象需要有很多监听器的情况.例如,我可能有
class Elephant {
public void addListener( ElephantListener listener ) { ... }
}
Run Code Online (Sandbox Code Playgroud)
但我会遇到很多这样的情况.也就是说,我也会有一个Tiger
对象TigerListener
.现在,TigerListener
s和ElephantListener
s完全不同:
interface TigerListener {
void listenForGrowl( Growl qrowl );
void listenForMeow( Meow meow );
}
Run Code Online (Sandbox Code Playgroud)
而
interface ElephantListener {
void listenForStomp( String location, double intensity );
}
Run Code Online (Sandbox Code Playgroud)
我发现我总是必须在每个动物类中继续重新实现广播机制,并且实现总是相同的.有首选模式吗?