|
Заблокирован
|
|
Конструктор класса или специальный метод созодания экземпляра класса?12.10.2020, 13:46. Показов 672. Ответов 13
Метки нет (Все метки)
Можно ли сформулировать критерии, по которым имеет смысл делать выбор способа создания экземпляра класса - конструктор класса или специальный метод создания экземпляра класса (внутри метода, конечно, будет использоваться конструктор)?
0
|
|
| 12.10.2020, 13:46 | |
|
Ответы с готовыми решениями:
13
Создать экземпляр метода класса или доступ к методу из экземпляра класса
Чем отличается конструктор класса от экземпляра класса? |
|
484 / 439 / 123
Регистрация: 05.01.2010
Сообщений: 1,848
|
|
| 12.10.2020, 13:56 | |
|
вот как лид скажет, так и будет
1
|
|
|
4694 / 2702 / 734
Регистрация: 02.08.2011
Сообщений: 7,233
|
||||||
| 12.10.2020, 14:16 | ||||||
|
titan4ik, это все диктуется здравым смыслом.
Если наиболее детальная перегрузка принимает 3 параметра, но в большинстве сценариев варьируется только один из них, то имеет смысл создать фабричный метод под этот параметр. Это, по сути, просто DRY principle. Либо когда хочешь отделить штатные состояния от исключительных ситуаций. Типа того:
1
|
||||||
|
Заблокирован
|
||
| 12.10.2020, 14:19 [ТС] | ||
![]() Я про себя - переделываю в очередной раз свою программку и пытаюсь понять как ее упростить. Нашел такие методы создания экземпляров у себя. Вот, решил задать вопрос в общем виде. Про инверсию зависимостей я читал и восхищался даже этим приемом, помнится для этого используются интерфейсы. Но сам вроде осознанно не применял инверсию зависимостей) А методы такие у себя обнаружил - нужно разбираться теперь. Вспомнил, это были методы создания экземпляра тоже по общему интерфейсу, а потом при исполнении им соответствовали объекты разных типов, которые унаследованы от этого интерфейса. Вроде примерно так.
0
|
||
|
4694 / 2702 / 734
Регистрация: 02.08.2011
Сообщений: 7,233
|
|
| 12.10.2020, 14:22 | |
|
Акцент на
Не замечали как именуются типы в FCL? Parse, TryParse, blah blah blah..
1
|
|
|
Заблокирован
|
||
| 12.10.2020, 14:33 [ТС] | ||
|
Почтальон, IamRain, спасибо!) Добавлено через 5 минут Ааа вот теперь вспомнил, я ещё использовал такие методы, когда изначально не понятно экземпляр какого именно типа нужно создать будет. И в зависимости от параметров логика решала какой конструктор применить. Вот это точно было.
0
|
||
|
14313 / 9393 / 1355
Регистрация: 21.01.2016
Сообщений: 35,424
|
||
| 12.10.2020, 15:12 | ||
|
3
|
||
|
Заблокирован
|
|
| 12.10.2020, 15:15 [ТС] | |
|
0
|
|
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
||
| 12.10.2020, 15:37 | ||
|
2. Когда создание экземпляра требует аргументов, которых у вас нет на момент его создания 3. Когда вам нужен просто экземпляр, но не обязательно новый — см. кеширование 4. Когда создание экземпляра включает дополнительный код кроме вызова конструктора: всякие проверки, например ... 100500. И т.д. и т.п.
3
|
||
|
Заблокирован
|
||
| 12.10.2020, 15:44 [ТС] | ||
|
0
|
||
|
14313 / 9393 / 1355
Регистрация: 21.01.2016
Сообщений: 35,424
|
||
| 12.10.2020, 15:46 | ||
|
3
|
||
|
Заблокирован
|
|
| 12.10.2020, 15:47 [ТС] | |
|
Да, понятно, затмение проходит)
0
|
|
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
|
| 14.10.2020, 15:08 | |
|
titan4ik, вот вам еще пример в копилку: Передача значения из конструктора производного класса в конструктор базового
Товарищу нужно в конструктор базового класса передать ссылку на объект, который инициализируется в производном классе.
2
|
|
| 14.10.2020, 15:08 | |
|
Помогаю со студенческими работами здесь
14
Не могу передать параметр в родительский конструктор при создании экземпляра класса
Создание экземпляра класса, разрушение экземпляра класса
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
|
Сумматор с применением элементов трёх состояний.
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, знаешь?. .
Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
|