четверг, 17 августа 2017 г.

Подумалось. Про инверсию зависимостей

Вот во времена Turbo Pascal/Turbo Vision у контролов была концепция Validator'ов.
Ввода/вывода.

Очень правильная концепция, как я теперь понимаю.

Жалко что Borland когда сделал Delphi - выпилил эту концепцию.

Тогда бы например не надо было бы "городить" отдельный класс типа TMaskEdit.

А уж теперь при наличии "лямбд".

Приходится прикручивать свой аналог.

Даже VisualLiveBinding - "вроде про то же",  но не "про то".

2 комментария:

  1. Мы возродили эту концепцию, правда в сильно изменённом виде.
    Процесс валидации элементов управления у нас достаточно сложен - сказываются весьма специфический (вплоть до экзотики) требования к поведению форм. Например, есть валидация выбора элемента справочника, выполняющаяся в разных сценариях (если быть точным - их три), валидация при выходе из поля ввода (Tab) - хинт в случае выявления каких-либо проблем, валидация самой формы, подразумевающая валидацию всех её составных частей.
    MaskEdit - ну да :-) Я тоже смеялся...
    Вообще же, концепции Delphi вроде упомянутого VisualLiveBinding выглядят жалко на фоне требований разработки форм не программистами. Эти концепции просто не применишь, поскольку пользователь, имея доступ к дизайнеру форм не имеет доступа к коду, в котором он ничего не понимает. Тут нужен другой операционный язык.

    ОтветитьУдалить