|
Функция инициализации или исключение в конструкторе?
|
|||
---|---|---|---|
#18+
Чукча ТС не читатель. Он писатель.... и первый раз видит кнопку Настройки - По умолчанию LOL))) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2021, 07:22 |
|
Функция инициализации или исключение в конструкторе?
|
|||
---|---|---|---|
#18+
mayton Он спросил. Что предпочтительнее. Я думаю что оба варианта плохие. Но мне нравится более атомарный вариант класса конфигурации когда конструктор делает 100% подготовительной работы и не падает. Удивительно как 3 страницы люди ни о чем говорят. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2021, 07:26 |
|
Функция инициализации или исключение в конструкторе?
|
|||
---|---|---|---|
#18+
mayton, Предложи ему статический метод класса возвращающий экземпляр себя. Там будет проверки в первых строках и потом конструктор. Уж эти 3 варианта удовлетворяет любого новичка - coctructor - init - static createInstans ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2021, 07:34 |
|
Функция инициализации или исключение в конструкторе?
|
|||
---|---|---|---|
#18+
Статический метод? Зачем. Он не добавляет ничего к тому что было уже сказано. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2021, 13:17 |
|
Функция инициализации или исключение в конструкторе?
|
|||
---|---|---|---|
#18+
mayton Статический метод? Зачем. Он не добавляет ничего к тому что было уже сказано. авторУ нас есть два варианта для инициализации и обработки ошибок: 1) Функция инициализации возвращающая признак ошибки. 2) Или исключение вылетающие из конструктора. В первом или втором? Или ТС такой косноязычный? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2021, 13:45 |
|
Функция инициализации или исключение в конструкторе?
|
|||
---|---|---|---|
#18+
Я не хочу сильно погружаться в эту тему. По ней мало инфы. Нет даже названия этого класса. А все теоретики ООП говорят о том что имя - должно быть звучащим. Оно должно значить. Например "Properties" или "PropertyParser". В зависимости от этого другие ответы по дизайну класса могут обрести смыл. А там мы пока обсуждаем шкуру медведя которого еще нету. Для случая с *Parser функция возвращающая опционал или Maybe<> может быть и была-бы полезна. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2021, 14:07 |
|
Функция инициализации или исключение в конструкторе?
|
|||
---|---|---|---|
#18+
mayton, Ну, если ТС спорит с нужностью default настроек и переменных, то это вообще за гранью))))) Удачи аффтару! ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2021, 14:14 |
|
Функция инициализации или исключение в конструкторе?
|
|||
---|---|---|---|
#18+
mayton По ней мало инфы. Нет даже названия этого класса. Я придумал выход из ситуации, который меня устраивает. Дело в том, что класс настроек у меня болтается не просто так, а управляется повторно-используемым классом синглетона. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9.
Класс Options в конструкторе только заполняет все настройки дефолтными значениями. И класс Options реализует функцию init(). Но если IsAllowDefault == false в целом синглетон ведёт себя так, как будто из конструктора Options при ошибке вылетело исключение. А если IsAllowDefault == true, то синглетон ведёт себя так, как будто была вызвана функция init(). Т.е. двумя вариантами реализации из моего первого поста я управляю настраивая класс Singleton. И могу легко переключаться между поведениями: 1) исключение из конструктора 2) вызов функции init(). Приятно, то что функция Options::save() вызывается в классе Singleton. Т.е. в классе Options не нужно следить за тем, а были ли мы успешно загружены, а если были то в деструкторе Options вызовем save(). И виртуальный метод Options::save() нужно было вызывать именно в деструкторе клиентского класса Options, этот метод нельзя было вызывать в деструкторе базового класса OptionsBase, по понятным причинам. Теперь деструктор Options пустой. И теперь всем жизненным циклом управляет класс Singleton и поведение настраивается через шаблонные параметры этого класса. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2021, 17:53 |
|
Функция инициализации или исключение в конструкторе?
|
|||
---|---|---|---|
#18+
Ужас. Синглетон счас наверно только сишники остались используют) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2021, 18:14 |
|
Функция инициализации или исключение в конструкторе?
|
|||
---|---|---|---|
#18+
petrav, авторТ.е. двумя вариантами реализации из моего первого поста я управляю настраивая класс Singleton. И могу легко переключаться между поведениями: 1) исключение из конструктора 2) вызов функции init(). Вообще то это решается не в рантайме и не набегу, а во время написания кода. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2021, 18:17 |
|
|
start [/forum/topic.php?fid=57&msg=40050522&tid=2017254]: |
0ms |
get settings: |
11ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
154ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
60ms |
get tp. blocked users: |
1ms |
others: | 240ms |
total: | 502ms |
0 / 0 |