Ich schreibe gerade eine Anwendung, bei der viele Listener-Interfaces entstehen werden.
Viele der Listener können dann bei der Klasse IrcCommunicator angemeldet werden.
Für die Anmeldung und Nutzung des ersten Listeners habe ich schon die Implementierung geschrieben:
Wenn ich jetzt weitere Listener auf die gleiche Art und Weise einfügen würde (Beispielsweise einen ChannelListener), würde ich das DRY-Prinzip verletzen (Dont Repeat Yourself), da der Algorithmus zum an- und abmelden der Listener der gleiche wär.
Gibt es hier die Möglichkeit, generische Typen einzusetzen?
Wenn ja, wie? Diese sind Neuland für mich.
lg Stephan
Viele der Listener können dann bei der Klasse IrcCommunicator angemeldet werden.
Für die Anmeldung und Nutzung des ersten Listeners habe ich schon die Implementierung geschrieben:
Java:
public class IrcCommunicator extends PircBot {
protected Vector<MessageListener> messageListeners;
public IrcCommunicator(String loginName) {
messageListeners = new Vector<MessageListener>();
setName(loginName);
setLogin(loginName);
}
public void addMessageListener(MessageListener newMessageListener) {
if (newMessageListener != null) {
messageListeners.add(newMessageListener);
}
}
public void removeMessageListener(MessageListener aMessageListener) {
messageListeners.remove(aMessageListener);
}
@Override
protected void onMessage(String channel, String sender, String login, String hostname, String message) {
for (MessageListener currentMessageListener : messageListeners) {
currentMessageListener.onMessage(channel, sender, login, hostname, message);
}
}
}
Gibt es hier die Möglichkeit, generische Typen einzusetzen?
Wenn ja, wie? Diese sind Neuland für mich.
lg Stephan