|  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. | 
|  | 
|  | 
| 
 |