2

在我最近的一个项目中,我已经达到了一个很好的阶段,那里有相当多的工作,但没有什么是不能轻易改变/修改的。我现在被要求为我的程序添加..如何描述这个..不同的“模式”,例如;

  • 地图视图模式,其中程序更多是图形显示,一切都基于绘制到地图/其他显示器上。
  • 一种数据网格模式,其中程序更多地基于文本等。

我可以将这些信息存储在一个变量中,例如,即使是一个包含“map”或“datagrid”的字符串,程序也会根据这个或一个枚举创建 gui/它的进程,尽管这意味着我需要移动一些东西我想多了一点。

public string mode; 
// then use dropdowntools to set this to "map" or "datagrid"

public enum mode
{
   map,
   datagrid
};
// again use dropdowntools

我是否最好将我的 UI 编码/表单的主要部分移动到 2 个单独的类,一个用于地图,一个用于数据网格,并根据用户的选择和不可避免的变量创建它们?

我已经在大多数用户可以更改这些选项的应用程序中看到了这一点,但从未见过编码它的最佳实践。

目前我已经考虑过这样安排;

  public void pollDevices()
    {

            if (mode == "Map")
            {
                timer = new System.Timers.Timer(500);

                 for (int i = 0; i <= mDevices.Count - 1; i++)
                 {
                     IDeviceInterface deviceToPoll = mDevices[i];
                     timer.Elapsed += delegate { deviceToPoll.connect(deviceToPoll, this, exit); };

                 }
            timer.Enabled = true;
            }


            else if (mode == "Datagrid")
            {

            }
        }

但是我最好将不同模式的代码块移动到其他类中,从 mainGUI 调用这些,这样它更整洁更容易阅读吗?

 public void pollDevices()
{

        if (mode == "Map")
        {
            //call method in map class that does this stuff.

        }


        else if (mode == "Datagrid")
        {
             //call method in datagrid class that does this stuff
        }
    }

如果有人对他们将如何做这类事情有任何意见,那将是一个很大的帮助。如果您需要我提供任何进一步的信息,请询问。

4

1 回答 1

2
  1. 将显示组件分解为单独的控件,一个用于地图,一个用于网格
  2. 创建两个控件使用的通用接口和数据源
  3. 创建一个公共类或一组类,为任一控件提供数据
于 2012-06-26T08:27:50.317 回答