Новости | FAQ | Авторы | Документация | В действии | Библиотека |
Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
Sumo 03.10.2020 11:09 / 03.10.2020 11:12
Для этого прекрасно подходит шаблон проектирования «стратегия». Выносите специфическое поведение в отдельный класс и параметризируете им основной класс через конструктор.@main[][locals] $actions[ $.get_data[DataAction] $._default[DefaultAction] ] $options[ $.sql[...] ] $handler[^Handler::create[ ^reflection::create[$actions.[$form:action];create;$options] ] ^handler.run[] @CLASS Handler @OPTIONS locals @create[aAction] $self._action[$aAction] @run[] ^self._action.process[$form:fields] @CLASS DefaultAction @create[aOptions] @process[aForm] Default page @CLASS DataAction @OPTIONS locals @create[aOptions] $self._sql[$aOptions.sql] @process[aForm] $lData[^self._sql.table{ select * from data where id = ^aForm.id.int(-1) }] ^if($lData){ $lData.text }{ Data not found }p.s. Очень надеюсь, что вы пользуетесь исключительно динамическими объектами, а не статическими классами в своем коде. В статических классах вам недоступно большинство ООП-приемов. :)