08.08.2013, 21:08 | #1 |
Участник
|
Класс как набор статических методов
Здравствуйте!
Есть вопрос по поводу использования класса-набора статических методов, взаимосвязанных друг с другом. Например, в классе (ClassOfStaticMethods) есть статические методы, такие как: 1) Метод создания какого-либо журнала - ClassOfStaticMethods::CreateJournal(ParmTable _parmTable); 2) Метод создания шапки журнала - ClassOfStaticMethods::CreateHeaderl(ParmTable _parmTable); 3) Метод создания строк журнала - ClassOfStaticMethods:: CreateTransl(ParmTable _parmTable); Последовательность вызова методов: В CreateJournal вызывается CreateHeader, в CreateHeader вызывается CreateTrans. В качестве параметра в методы класса передается таблица - ParmTable. Примечание: необходимости использовать диалог или передавать экземпляр класса для дальнейшей обработки нет. Вопрос - с точки зрения этики программирования в среде MorphX, является ли данный подход к выполнению такой операции как создание журнала приемлемой? Последний раз редактировалось AxFinder; 08.08.2013 в 21:11. |
|
09.08.2013, 06:29 | #2 |
Участник
|
Наивно полагать, что вам потребуется лишь один параметр, как минимум журнал может быть разнесен, либо не разнесен.
Такие методы надо привязывать по смыслу к конкретным классам, например SalesFormLetter_Invoice. Бьюсь об заклад, что статика вам не понадобится, как следствие можно будет обойтись без передачи параметров в метод.
__________________
// no comments |
|
09.08.2013, 08:44 | #3 |
Участник
|
Принцип Лисков не выполняется. http://ru.wikipedia.org/wiki/SOLID
Грубо говоря, если вам в будущем понадобится разветвить алгоритм по какому-нибудь новому критерию (новый подтип журнала), то вам придется не только добавлять новые параметры в ParmTable, но и переписывать код статических методов. Считается, что правльным является подход, при котором добавление новой функциональности не затрагивает (или минимально затрагивает) уже существующую. Последний раз редактировалось S.Kuskov; 09.08.2013 в 09:16. |
|
09.08.2013, 09:28 | #4 |
Участник
|
В аксапте есть стандартный фреймворк для работы с журналами. Посмотрите в качестве примера на классы, формы и таблицы начинающиеся с TutorialJournal*
Создание нового журнала Последний раз редактировалось S.Kuskov; 09.08.2013 в 09:35. |
|
|
|