28.08.2013, 11:45 | #1 |
Участник
|
Новый шаблон проектирования execute()
Наверное все используют шаблон construct(), основанный на рекомендациях Microsoft. Я придумал небольшое нововведение, позволяющее методы сделать более "чистыми".
Пример кода, как мы обычно строим RunBase-класс: X++: class ConstructTemplateDemo extends RunBase { public static void main(Args _args) { ConstructTemplateDemo constructTemplateDemo = ConstructTemplateDemo::construct(); ; if (constructTemplateDemo.init() && constructTemplateDemo.prompt()) { constructTemplateDemo.run(); } } public static ConstructTemplateDemo construct() { return new ConstructTemplateDemo(); } } Прикинем, что можно сделать... Выделим содержимое метода main() в новый метод и посмотрим, что же у нас получилось: X++: class ExecuteTemplateDemo extends RunBase { public static void main(Args _args) { ExecuteTemplateDemo::construct().execute(); } public static ExecuteTemplateDemo construct() { return new ExecuteTemplateDemo(); } public void execute() { if (this.init() && this.prompt()) { this.run(); } } }
__________________
// no comments |
|
|
За это сообщение автора поблагодарили: mazzy (5). |
|
|