Всем доброго дня).
Ситуация: Двигатель (Engine) имеет свойство модель (Model).
Есть иерархия: Двигатель (Engine) -> Все Параметры (AllParams) -> Параметры (Param1, Param2, Param3 и т. д.).
Каждый Param представляет собой объект заданного класса (Param1, Param2, Param3 и т.д.). В каждом Param есть свойство Model, которое описывает объект класса Engine, в котором эти параметры и находятся.
В крайне упрощенном виде код данной ситуации представлен внизу:
public class Engine {
public EngineModel Model {get; private set;}
public AllParams allParams;
public Engine(EngineModel Model) {
this.Model = Model;
allParams = new AllParams();
}
public void UpdateModel(EngineModel newModel) {
Model = newModel;
}
}
public class EngineModel {
public string ModelName {get; set;}
}
public class AllParams {
public Param1 param1;
public Param2 param2;
public Param3 param3;
public AllParams() {
param1 = new Param1();
param2 = new Param2();
param3 = new Param3();
}
}
public class Param1 {
public string ModelName {get; set;}
}
public class Param2 {
public string ModelName {get; set;}
}
public class Param3 {
public string ModelName {get; set;}
}
С точки зрения архитектурного проектирования, как лучше организовать изменение Model в каждом Param при изменении модели двигателя?
У меня есть две идеи:
1) В классе AllParams организовать метод UpdateModel, который изменит значение Model в каждом из Param, входящих в AllParams.
2) В классе AllParams определить класс ModelObservable для хранения Model и вызова события ModelChanged. В свою очередь, каждый Param подписывается на событие ModelChanged и получает измененное значение Model
Или 1 и 2 вариант полная чушь и надо сделать совсем по-другому?
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Есть следующая проблема, на форме расположен компонент, форма создана без элементов управления и обработка перемещения формы по рабочему...
Реализация в модели (в паттерне MVVM), каждой публичной переменной так: