Исходя из не-OO фона в Matlab, я ищу, чтобы выполнить некоторые операции, к которым я привык в наилучшей практике для C #.
У меня есть класс, который импортирует данные из источника и форматирует их, среди прочего, в массив целых чисел. Я хочу выполнить некоторые операции с этим массивом. Для простоты, скажем, я хочу взять среднее значение всех значений. На мой взгляд, у меня есть три варианта:
- Массив является частью MyClass, поэтому я мог бы расширить MyClass для возврата среднего значения MyArray.
double arrayAverage=MyClass.ArrayAve;
Я мог бы разработать статический класс, давая мне доступ к среднему на double arrayAverage= zotty.arrayMath.average(MyArray);
По-видимому, есть какой-то способ, которым я могу наследовать или взаимодействовать, чтобы я создал класс специально для выполнения таких операций, к которому я мог бы получить доступ, создав экземпляр этого нового класса и передав ему массив:
OperatorClass oc = new OperatorClass ();
oc.data = MyClass.MyArray; * * тысяча двадцать-один
double arrayAverage = oc.ArrayAverage ();
Расширение класса кажется рискованным, поскольку оно также отвечает за импорт и форматирование данных. Я мог бы стать довольно большим, если бы добавил к нему всю обработку данных, и другим людям было бы не просто добавить и работать вместе со мной.
Будущий код потребует более сложных операций над массивом, и я понятия не имею, какими они будут в данный момент. Я буду использовать некоторые из основных операций в будущих программах, которые будут полезны как часть статического класса - однако сложные будут избыточными.
Отдельный класс для выполнения обработки данных позволяет классу импорта / форматирования оставаться изолированным. Он может предоставлять как общие, так и специальные функции, но за счет создания другой переменной в коде, что мне кажется немного неопрятным.
Буду признателен, если у вас есть мысли по этому поводу!