|
108 / 14 / 7
Регистрация: 06.07.2013
Сообщений: 268
|
||||||
Можно ли вызвать дочерний конструктор раньше родительского09.02.2018, 11:23. Показов 2196. Ответов 7
Метки нет (Все метки)
У меня есть набор классов общий функционал которых вынесен в абстрактный класс. Конструктор из абстрактного класса должен вызываться только если при инициализации пройдена проверка на условие которое переопределяется в дочерних классах.
Подумал что это можно решить введением в родительский класс абстрактный метод, вызывать его первым и в нем переопределять нужную проверку. Но это все таки лишний метод, нельзя выполнять подобное в конструкторе дочерних классов? Проблема в том что дочерние классы вызываются после родительского. Можно как либо изменить это поведение? Пример кода:
0
|
||||||
| 09.02.2018, 11:23 | |
|
Ответы с готовыми решениями:
7
Как пометить конструктор с параметрами, чтобы его можно было вызвать Передача указателя из родительского процесса в дочерний Вывести дочерний div за пределы родительского |
|
Wanna be serious
587 / 474 / 186
Регистрация: 31.07.2013
Сообщений: 1,693
|
|
| 09.02.2018, 11:48 | |
|
Вызов родительского конструктора - строго регламентирован. Родительский конструктор вызывается всякий раз, перед вызовом дочернего конструктора.
1
|
|
|
108 / 14 / 7
Регистрация: 06.07.2013
Сообщений: 268
|
||
| 09.02.2018, 13:07 [ТС] | ||
|
Сделать так конечно можно, но если это плохая идея, а подобный функционал мне нужен, как сделать хорошо?
0
|
||
|
Wanna be serious
587 / 474 / 186
Регистрация: 31.07.2013
Сообщений: 1,693
|
|
| 09.02.2018, 13:27 | |
|
Возможно я не совсем понимаю контекст задачи, но почему не использовать несколько композиций требуемых классов, и в случае успешной проверки, создавать экземпляр того класса, который нужен?
0
|
|
|
108 / 14 / 7
Регистрация: 06.07.2013
Сообщений: 268
|
||
| 09.02.2018, 13:40 [ТС] | ||
|
Я в примере дал почти реальный код. Я пишу бота на WebUI Test фреймворке (не спрашивайте
) используя паттерн PageObject. При создании объекта мне нужно проверить на той ли странице мой браузер, если на нужной то выполнять однотипную инициализацию объекта, если не на той выбросить исключение.Так как инициализация у всех объектов страниц одинаковая захотел вынести ее в отдельный класс но проверять URL текущей страницы браузера нужно при создании различных PageObject. Пока писал подумал что наверное в отдельный метод нужно вынести не проверку на корректность URL, а код инициализации страницы. Тогда не будит предупреждений о не безопасном коде. Добавлено через 2 минуты Добавлено через 2 минуты Короче что-то не то у меня с архитектурой %).
0
|
||
|
Wanna be serious
587 / 474 / 186
Регистрация: 31.07.2013
Сообщений: 1,693
|
|
| 09.02.2018, 13:44 | |
|
На Вашем месте, я бы сначала проверил текущее местонахождение, и в зависимости от состояния, принимал решение, создавать ли класс.
0
|
|
|
108 / 14 / 7
Регистрация: 06.07.2013
Сообщений: 268
|
|||||||
| 09.02.2018, 13:50 [ТС] | |||||||
0
|
|||||||
|
Wanna be serious
587 / 474 / 186
Регистрация: 31.07.2013
Сообщений: 1,693
|
|
| 09.02.2018, 13:52 | |
|
Возможно стоит вынести проверку в отдельный метод, если предполагается её частое использование.
0
|
|
| 09.02.2018, 13:52 | |
|
Помогаю со студенческими работами здесь
8
Прижать дочерний див к низу родительского Передача аргументов из родительского в дочерний процесс Дочерний блок принимает background родительского
В ie 6 дочерний блок выходит за границы родительского блока Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут.
https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc
Первый документ красиво выглядит, но без схемы.
Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
|
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере".
Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита, которое может. . .
|
Команды "Заполнить" и "Очистить" на форме документа
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти".
На примере нетипового документа разработанного в конфигурации КА2.
В качестве источника данных указан регистр накопления, в который записываются данные о. . .
|
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер
Написал заготовку:
dotnet new console --aot -o UrlHandler
var items = args. Split(":");
var tag = items;
var id = items;
var executable = args;. . .
|
|
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
|
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений.
9TO2GP2bpX4
a42b81fb172ffc12ca589c7898261ccb/
https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/
Слева синяя линия -. . .
|
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. .
Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
|
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога
Финальные проекты на Си и на C++:
finish-text-sdl3-c. zip
finish-text-sdl3-cpp. zip
|