【发布时间】:2011-11-02 17:16:07
【问题描述】:
我有一个具有多种设置的控制电路,并且可能连接了任意数量的传感器(每个传感器都有自己的一组设置)。这些传感器只能与控制电路一起使用。我想过像这样使用嵌套类:
public class ControlCircuitLib
{
// Fields.
private Settings controllerSettings;
private List<Sensor> attachedSensors;
// Properties.
public Settings ControllerSettings
{ get { return this.controllerSettings; } }
public List<Sensor> AttachedSensors
{ get { return this.attachedSensors; } }
// Constructors, methods, etc.
...
// Nested classes.
public class Settings
{
// Fields.
private ControlCircuitLib controllerCircuit;
private SerialPort controllerSerialPort;
private int activeOutputs;
... (many, many more settings)
// Properties.
public int ActiveOutputs
{ get { return this.activeOutputs; } }
... (the other Get properties for the settings)
// Methods.
... (method to set the circuit properties though serial port)
}
public class Sensor
{
// Enumerations.
public enum MeasurementTypes { Displacement, Velocity, Acceleration };
// Fields.
private ControlCircuitLib controllerCircuit;
private string sensorName;
private MeasurementTypes measurementType;
private double requiredInputVoltage;
... (many, many more settings)
// Properties.
public string SensorName {...}
... (Get properties)
// Methods.
... (methods to set the sensor settings while attached to the control circuit)
}
}
我读过公共嵌套类是“禁止”的,但也有例外。这种结构可以吗?还是有更好的选择?
谢谢!
编辑
下面是我尝试为其编写库类的控制电路的粗略层次结构;我使用代码格式化来防止文本换行。
Control Circuit (com. via serial port) -> Attached Sensors (up to 10) -> Sensor Settings (approx. 10 settings per sensor)
Basic Controller Settings (approx. 20 settings)
Output Settings (approx. 30 settings)
Common Settings (approx. 30 settings)
Environment Settings (approx. 10 settings)
所有设置都是通过控制器设置的,但我想要一个有组织的库,而不是仅仅将所有 ~100 种方法、属性和设置都塞在一个 Controller 类下。如果有人能提供一个简短的例子来概述他们将使用的结构,那将不胜感激。谢谢!
【问题讨论】:
-
如何“配置”控制电路?您是否根据设置在内部创建传感器?这些设置是否定义了传感器的配置?
-
@Jordão:基本上,控制电路具有内置的串行功能,用于设置电路(和连接的传感器)的设置。我想创建一个库类,这样我就不必手动创建命令字符串(例如
SetSensorSettingA(sensorInstance, -20)而不是发送“NA,BL,01,-20,\r”)。我是机甲。英。所以我只是想知道真正的程序员会如何组织这个课程:) -
有完整的源代码示例工作的最终解决方案吗?
标签: c# nested-class