2017-01-31 2 views
1

Я создаю программу для запуска нескольких различных анализов на наборе данных. Различные виды анализа представлены различными объектами инструмента анализа (например, «AnalysisType1» и «AnalysisType2»). Инструменты анализа используют одни и те же параметры. Программа управляется из графического интерфейса, в котором все параметры задаются пользователем. То, что я пытаюсь понять, - это самый элегантный/лучший способ поделиться параметрами между всеми компонентами программы. Варианты, о которых я могу думать, включают:Обмен параметрами между объектами

  1. Храните все параметры в графическом интерфейсе и передавайте их каждому инструменту анализа, когда он выполняется.
  2. Сохраняйте параметры в каждом из инструментов и обновляйте параметры во всех инструментах каждый раз, когда они изменяются в графическом интерфейсе. Затем они готовы идти всякий раз, когда выполняется анализ.
  3. Создайте объект ParameterSet, который содержит все параметры для всех компонентов. Дайте ссылку на этот объект ParameterSet для каждого компонента, который в нем нуждается, и обновите его параметры, когда они будут изменены в графическом интерфейсе.

Я уже пробовал # 1, а затем # 2, и по мере того, как сложность возрастает, я подумываю о переходе на # 3. Есть ли причины не применять этот подход?

ответ

1

Как создать родительский класс для всего анализа, который будет иметь общие атрибуты (возможно, статические) и методы?

Таким образом, когда вы реализуете новый AnalysisType, вы наследуете все параметры, и вы можете изменить их в одном месте.

+0

Спасибо. Вероятно, это хороший способ. Этот подход считается «пифоническим»? – PProteus

+1

Считается объектно-ориентированным. Вы используете объекты, поэтому это должен быть ваш подход. – AndreyF

Смежные вопросы