我希望Android应用能够根据用户所在的用户组的不同来查看和行为。例如,用户登录,应用程序告诉服务器它是哪个用户。从服务器返回的信息可能因用户而异,因此我希望应用程序能够创建与信息匹配的不同UI元素。
可能会改变的事情是:
我很抱歉这个含糊不清,也许提问一般这个问题并不聪明,但我还不知道应用程序的具体细节,只是大纲,我想在某个地方开始。
唯一的方法是做一堆
if(condition)
//intitialize one GUI element
else if(condition2)
//initialize another GUI element
直到无穷大,还是有另一种方式?
答案 0 :(得分:1)
同事们,为什么不使用策略模式?
在我们的案例中,我建议:
1)在将由具体类实现的接口中分离所需的行为。 E.g:
public interface IViewBehavior {
public void setSorting();
public void setFields();
public void setColors();
}
public interface IDataBehavior {
public void setData();
}
2)使用组合并通过委托:
将这些行为集成(添加)到Application对象中public class RickardApp extends Application {
IDataBehavior dataBehavior;
IViewBehavior viewBehavior;
public void setDataBehavior(IDataBehavior dataBehavior) {
this.dataBehavior = dataBehavior;
}
public void setViewBehavior(IViewBehavior viewBehavior) {
this.viewBehavior = viewBehavior;
}
}
set * Behavior()方法将动态定义应用程序的行为。 我们只需要在知道细节时创建“行为” - 类。