Цитата:
Сообщение от
mazzy
можно.
только в этом случае связь с инфраструктурой аксапты тоже вручную писать нужно будет.
поэтому я использовал menuItem.
Заметь, что в исходном проекте использующем case делается специальное текстовое значение, которое повторяется в нескольких местах.
Цитата:
в проекте на конструкторах не было main, который ВСЕ ЗНАЕТ. было main, которые знали о себе (как обычно)
в проекте на конструкторах не было contruct, который ВСЕ ЗНАЕТ. было два конструктора. каждый знает только о своем уровне и принимает решение своего уровня.
Это ограничение, да, для каких-то сложных свопобов создания это не очень подходит. Но приведенный пример к ним не относится: родительский construct знает о существовании ключей, которые передает дальше.
Цитата:
в новом проекте на атрибутах действительно есть main, который должен знать обо всей иерархии. в проектике этого нет, потому что нет валидации входных данных. но в реальной жизни такая валидация обязательна.
В чем проблема с валидацией? Если ее надо делать до определения потомка, то вставить в вызывающий класс, если после, то в базовый.
Цитата:
Давай лучше поговорим о трудоемкости и об ответстенности за правильность результата.
Как бы ты оценил трудоемкость и удобность по сравнению со старым методом?
Мое мнение: Через жопу по сравнению со старым конструкторским методом.
Трудоемкость какого сценария? Добавление нового элемента - чуть меньше. Создание самой точки расширения - чуть больше или такая же.
Апгрейда при условии отсутствия breaking changes меньше.
Поиска зависимостей - примерно такая же.
Цитата:
Раньше программист должен был знать только иерархию классов.
Теперь иерархия классов может (и должна) не совпадать с иерархией атрибутов.
Тут никакой иерархии атрибутов нет, атрибут ровно один.
Цитата:
Теперь программисту надо знать три вещи - иерархию классов, иерархию атрибутов и маппинг между ними.
Никакой иерархии атрибутов нет, меппинг не надо знать он как читается в коде как и раньше, только другим способом.
Цитата:
Во всех трех вещах могут быть ошибки. А поскольку в новом методе никакого контроля на этапе компиляции, то в новом методе ошибки будут неизбежно.
В новом - меньше.
Цитата:
Да, ортогональный

Да, никакой асинхронности.
Да, я совершенно зря загорелся надеждой...
При чем тут вообще асинхронность и создание экземпляров классов.
Цитата:
"Также как и сейчас" - это ты очень хорошо сказал.
Если "также как и сейчас", то нафига огород городить?
Чтобы в других аспектах было не так же как и сейчас. Не все сразу.
Цитата:
Макс... Я понимаю что ты хочешь сказать. Но просто сделай проектик (чуть более сложный чем одноувроенвое семейство из трех классов) И покажи в нем что хочешь сказать.
Сконвертировал пример c case на жкстеншены. Не тестировал - мне кажется ты разобрался в концепции.