我正在开发一个应用程序,该应用程序将用于在工业环境中打开和关闭阀门,并且正在考虑这样的简单操作:-
public static void ValveController
{
public static void OpenValve(string valveName)
{
// Implementation to open the valve
}
public static void CloseValve(string valveName)
{
// Implementation to close the valve
}
}
(该实现会将一些字节的数据写入串行端口以控制阀门-从阀门名称派生的“地址”,以及“ 1”或“ 0”来打开或关闭阀门)。
另一个开发人员问我们是否应该为每个物理阀创建一个单独的类,其中有几十个。我同意,最好使用PlasmaValve.Open()
而不是编写类似的代码ValveController.OpenValve("plasma")
,但这是否太过分了?
另外,我想知道如何最好地考虑到一些假设的未来需求:
- 我们被要求支持一种新型的阀门,该阀门需要不同的值来打开和关闭它(不是0和1)。
- 我们被要求支持可以设置在0-100之间的任何位置的阀,而不是简单地“打开”或“关闭”。
通常,我会在这种情况下使用继承,但是最近我开始着手解决“继承之上的组合”问题,并想知道使用组合是否有一个更好的解决方案?