使用具有不同配置的相同屏幕

时间:2014-12-18 00:09:49

标签: android design-patterns

我的Android应用程序有一些屏幕具有一些配置,这些配置取决于特定参数,以确定将在屏幕上显示的内容,例如:显示或不显示某些字段,更改某些字段的屏幕位置,更改组件类型。我正在为每个组合使用视图助手模式,因为我不想在活动的视图助手上添加大量if条件。我试图创建一个视图助手工厂,根据配置,它返回根据我的需要配置活动的相应视图助手。但我有一些屏幕可能有超过10个配置。考虑到可能性的数量遵循2 pow n,n是配置的数量,在之前的sittuation中,我需要创建1024个视图助手 - 每个可能性一个,这显然不是一个好主意。另一方面,使用条件ifs,维护项目将非常困难。

我想就本案可以被认为是一种好的做法提出一些建议。如果可能的话,可以使用设计模式的例子来讨论这个问题。

谢谢!

1 个答案:

答案 0 :(得分:0)

使用Strategy Pattern

class MainApp
{
   static void Main()
   {
      Manager mgr;

      mgr = new Manager(new AboutPage());
      mgr.Configure();

      mgr = new Manager(new ProfilePage());
      mgr.Configure();
   }
}

abstract class BlogPage
{
   public abstract void ShowHideElement();
}

class AboutPage : BlogPage
{
   public override void ShowHideElement()
   {
       // Do some configuration here (hide / show element)
   }
}

class ProfilePage : BlogPage
{
   public override void ShowHideElement()
   {
      // Do some configuration here (hide / show element)
   }
}

class Manager
{
   private BlogPage _page;

   public Manager(BlogPage page)
   {
      this._page = page;
   }

   public void Configure()
   {
      _page.ShowHideElement();
   }
}

谢谢,

相关问题