0

我希望 Android 应用程序能够根据用户所在的用户组以不同的方式显示和行为。例如,用户登录,应用程序告诉服务器它是哪个用户。从服务器返回的信息可能因用户而异,因此我希望应用程序能够创建与信息匹配的不同 UI 元素。

可能会改变的事情是:

  • 根据不同的索引对数据列表进行排序
  • 具有不同输入字段的对话,以及不同数量的对话
  • 颜色和图标可能会改变,尽管这不应该那么难。
  • 也许功能可能完全被排除在外,例如在数据库中添加/删除字段,显示不同的图表等。

很抱歉这含糊不清,也许问这个笼统的问题并不聪明,但我还不知道应用程序的细节,只是大纲,我想从某个地方开始。

是唯一的办法做到这一点

if(condition)
   //intitialize one GUI element
else if(condition2)
   //initialize another GUI element

直到无穷大,还是有其他方法?

4

1 回答 1

1

同事们,为什么不使用策略模式呢?

在我们的案例中,我建议:

1) 在将由具体类实现的接口中分离所需的行为。例如:

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() 方法将动态定义应用程序的行为。我们只需要在知道细节时创建“行为”类。

于 2013-04-02T13:49:37.970 回答