[英]How to realize user-specific type-generic behaviour in Play?
假设我要按以下方式构建应用程序:用户可以登录并创建一些观察机制,例如,每小时查找一个Twitter主题标签或检查一些股票。
出于科学目的,我不想让这些观察者(推特,股票等等)拥有所有可能的组合,而是拥有一个抽象类“ Observer”,它既可以扩展“ TwitterObserver”又可以扩展“ StocksObserver”。
我面临的问题是:
我无法例如选择所有观察者(无论类型如何),对其进行迭代,检查是否已修改并对用户特定的行为做出反应。 换句话说:我不能将通用的“观察者”类与包含用于该观察者的用户特定设置的类结合使用。
是否有任何设计模式或最佳实践来对此行为建模? 我简直不敢那么难。
我很感谢每一个提示! 感谢大伙们
在您的GenericObserver类中,创建一个应用程序作业以收集特定的类型:
public class Observer {
// common properties and methods
public static List<Observer> observers = new ArrayList<Observer>();
public static void respondUserBehavior() {
for (Observer observer: observers) {
// call each observer to respond to user behavior
}
}
@OnApplicationStart
public static class ObserverCollector extends Job<?> {
@Override public void doJob() {
observers.addAll(play.Play.classLoader.getAssignableClasses(Observer.class));
// or you might want to loop through the list and filter out the abstract classes
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.