Общедоступные вложенные классы C # или лучший вариант?

У меня есть схема управления, которая имеет несколько настроек и может иметь любое количество датчиков, подключенных к ней (каждый со своим собственным набором настроек). Эти датчики можно использовать только со схемой управления. Я думал об использовании вложенных классов следующим образом:

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 методов, свойств и настроек в один класс Контроллер . Было бы ОЧЕНЬ признательно, если бы кто-нибудь мог предложить короткий пример, описывающий структуру, которую они будут использовать. Спасибо!

14
задан john 4 November 2011 в 15:40
поделиться