Нужен совет: отношения классов (или данных) C# ООПC#

Место общения программистов C#
Ответить
Anonymous
 Нужен совет: отношения классов (или данных) C# ООП

Сообщение Anonymous »

Я работаю над своим исследовательским проектом. Допустим, у меня есть стальной стержень заданной длины 6 м. Я установил 3 датчика в точках 0м, 3м и 6м. Стальной стержень будет подвергнут нескольким условиям испытаний, скажем, условиям A, B, C, D и т. д. Мне нужно создать программу постобработки для обработки этих данных.
(Примечание: эта проблема была упрощена, реальная проблема более сложна, и если я объясню все детали, это будет сбивать с толку)
Как лучше всего установить здесь взаимосвязь данных?
Предположим, у меня есть
  • Состояние панели: A, B, C, D
  • Температура: (пара ключевых значений позиции и ее температуры )
Лучше создать связь:

(SteelBar Has-A BarCondition)

    (BarCondition Has-A Температура)
или лучше создать связь:

(SteelBar Has-A Температура)

    (Temperature Has-A BarCondition)
?
Позже мне также нужно создать комбинацию температур в той же позиции. Например:
  • Комбинация 1: BarConditionA + BarConditionB
  • Комбинация 2: BarConditionC + BarConditionD
  • Комбинация 3: 30% * BarConditionC + 40% BarConditionD
  • ... и т. д.
Будет около 1000 комбинаций и около 500 баров. И будет более 15 позиций датчиков, измеряющих его температуру. (И в реальном случае он измеряет не только температуру, но и некоторые другие данные в той же позиции. Поэтому я создаю класс для самих этих данных)
В настоящее время я создал класс с именем Температура который хранит данные о положении и температуре в словаре.
Я также создал класс с именем SteelBar, из которого я буду получать данные

Код: Выделить всё

class Temperature
{
private Dictionary _temperatureData;
public Dictionary TemperatureData { get { return _temperatureData; } }
public Temperature()
{
_temperatureData = new Dictionary();
}
public void AddTemperature(double position, double temperatureinDegree)
{
_temperatureData.Add(position, temperatureinDegree); //
}
}

Код: Выделить всё

class SteelBar
{
private Temperature _BarTemperature1, _BarTemperature2;
public SteelBar()
{
_BarTemperatureConditionA = new Temperature();
_BarTemperatureConditionA.AddTemperature(0, 27);
_BarTemperatureConditionA.AddTemperature(3, 39);
_BarTemperatureConditionA.AddTemperature(6, 55);

_BarTemperatureConditionB = new Temperature();
_BarTemperatureConditionB.AddTemperature(0, 33);
_BarTemperatureConditionB.AddTemperature(3, 99);
_BarTemperatureConditionB.AddTemperature(6, 10);
}
}
Однако я считаю, что такой подход неверен. Это будет проблематично, когда мне нужно будет совместить температуру.

Подробнее здесь: https://stackoverflow.com/questions/783 ... lationship
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»