что имеется ввиду?
Кейс когда очень не хочется весь шаблон хранить в заголовках
На самом деле она достаточно редка.
только для сокрытия реализация шаблона или для реализации специфичных для типа фич, а так на то он и обобщенный код, чтобы быть обобщенным
У меня получается сокрытие реализации. Есть иерархия классов диалогов и параллельная ей иерархия классов логики внутри этих диалогов. Таким образом хотел логику сделать аргументом шаблона класса диалога и скрыть реализацию логики от диалога. Какой-то pimpl выходит...
Ой да не стоит тут так уж архитектуализировать всё, я вот могу точно сказать по опыту: будет только хуже. Запутано , непрозрачно.
Формы лучше держать тупыми и плоскими.
А как тогда? Если мне нужно расширять и логику и диалог. Взять обычный pimpl?
Расширять — это в каком смысле?
По минимуму использовать виртуальные функции в логике, только добавлять новые
Ну, я тебе ещё могу сказать, что наследование в формах (в UI) — тоже вредно IMHO. Не нужно его использовать. Одно дело , когда ты наследуешь свой диалог от базового диалога фреймворка — это ок. Другое — когда наследуешь диалог выбора файла от диалога выбора. Это — не ок.
Если совсем так, то условно наследую диалог выбора картинки от диалога выбора файла. Тогда я немного не понимаю если мне нужен функционал диалога родителя + немного нового функционала то почему не наследоваться от него?
для этого есть композиция например
Это планируется реализовать в будущем, сейчас слишком разрозненная структура и притащить его займет много времени
Потом это займёт ещё больше времени. Если есть возможность сразу сделать нормально, имхо, стоит ей воспользоваться. Архитектурные ошибки стоят дорого.
Тут проект одна большая архитектурная ошибка...
Ну, это сложно. В основном потому, что общие свойства диалогов — они такие, кажущиеся только....
Эти диалоги - это отображение структур, которые содержат общих членов и своих поэтому предположил что будет много общего. Наследование диалогов отсюда и пришло. Соответственно общие члены всегда отображаются в общие свойства. Поправьте, если ошибаюсь.
Ну , ещё раз говорю, это сложно всё.
Обсуждают сегодня