|
ООП. Объект загружает сам себя - это нормально?
|
|||
---|---|---|---|
#18+
Всем привет! В общем, раньше я не был ООП-шником, потом как-то втянулся и пошло-поехало. В одном проекте (C# VS2017) "достукался" до такой строчки кода: Код: c# 1.
В общем всё работает, но вопрос в том - нормальная ли это практика, что объект (экземпляр класса) загружает сам себя из файла (и изменяется при этом) ? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.09.2018, 08:25 |
|
ООП. Объект загружает сам себя - это нормально?
|
|||
---|---|---|---|
#18+
это нарушение принципа единственной ответственности и separation of concerns. Так же рекомиендую прочитать сошлашение о наименовании в C# ... |
|||
:
Нравится:
Не нравится:
|
|||
17.09.2018, 10:00 |
|
ООП. Объект загружает сам себя - это нормально?
|
|||
---|---|---|---|
#18+
Я вам не Димон.В общем всё работает, но вопрос в том - нормальная ли это практика, что объект (экземпляр класса) загружает сам себя из файла (и изменяется при этом) Не может объект загружать сам себя. Загружает скорее всего статический метод класса, скорее всего вы изобретаете давно известный паттерн ... |
|||
:
Нравится:
Не нравится:
|
|||
17.09.2018, 10:12 |
|
ООП. Объект загружает сам себя - это нормально?
|
|||
---|---|---|---|
#18+
для того, чтоб следовать принципу единственной ответственности, поступайте следующим образом. попробуйте описать необходимый для реализации класс 1 предложением: 1. Класс который описывает параметры настройки 2. Класс который загружает параметры из файла 3. Класс который загружает параметры из базы и т.д. Когда класс можно описать 1им коротким предложением, скорее всего соответствует этому принципу. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.09.2018, 10:25 |
|
ООП. Объект загружает сам себя - это нормально?
|
|||
---|---|---|---|
#18+
Я вам не Димон., Метод должен быть статическим и тогда с правой стороны у нас будет стоять просто функция (stateless) которая просто инстанциирует объект. По аналогии с созданием синглтона. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.09.2018, 11:08 |
|
ООП. Объект загружает сам себя - это нормально?
|
|||
---|---|---|---|
#18+
спасибо всем, я также пришел к мысли, что загрузку инстанса (десериализацию из бинарника) лучше делать статическим методом. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.09.2018, 17:14 |
|
ООП. Объект загружает сам себя - это нормально?
|
|||
---|---|---|---|
#18+
WebSharperТак же рекомендую прочитать соглашение о наименовании в C#смотрел как-то на одном сайте. В общем мне гораздо больше нравится разделять слова символом подчёркивания - и где-то я даже видел - утверждалось, что такой вариант вполне приемлемый. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.09.2018, 17:27 |
|
ООП. Объект загружает сам себя - это нормально?
|
|||
---|---|---|---|
#18+
Roman Mejtesдля того, чтоб следовать принципу единственной ответственности, поступайте следующим образом. попробуйте описать необходимый для реализации класс 1 предложением: Класс, который реализует всю функциональность приложения Я вам не Димон.В общем всё работает, но вопрос в том - нормальная ли это практика, что объект (экземпляр класса) загружает сам себя из файла (и изменяется при этом) ? Если хорошо решает стоящие в этом месте задачи и не вызывает проблем - это адекватное решение. Если плохо решает стоящие в этом месте задачи или вызывает проблемы - это неадекватное решение. "Нормальной практики", вообще говоря, не существует, это просто сокращённые правила для тупых уровня "не используй goto". Такое решение есть куда улучшать. А вот нужно ли улучшать - зависит от того, где и как применяется. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.09.2018, 17:40 |
|
ООП. Объект загружает сам себя - это нормально?
|
|||
---|---|---|---|
#18+
softwarer"Нормальной практики", вообще говоря, не существует, Под "Нормальной практикой" здесь я подразумеваю устоявшиеся шаблоны решения типовых задач. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.09.2018, 07:00 |
|
ООП. Объект загружает сам себя - это нормально?
|
|||
---|---|---|---|
#18+
Я вам не Димон.смотрел как-то на одном сайте. В общем мне гораздо больше нравится разделять слова символом подчёркивания - и где-то я даже видел - утверждалось, что такой вариант вполне приемлемый. Вопрос, как именно наименовать методы абсолютно непринципиальный, но удобнее когда все именуют одинаково. Соглашения о наименовании для C# описаны тут . ... |
|||
:
Нравится:
Не нравится:
|
|||
18.09.2018, 10:37 |
|
ООП. Объект загружает сам себя - это нормально?
|
|||
---|---|---|---|
#18+
Я вам не Димон.Всем привет! В общем, раньше я не был ООП-шником, потом как-то втянулся и пошло-поехало. В одном проекте (C# VS2017) "достукался" до такой строчки кода: Код: c# 1.
В общем всё работает, но вопрос в том - нормальная ли это практика, что объект (экземпляр класса) загружает сам себя из файла (и изменяется при этом) ? Да, это нормальная практика, а что же в этом ненормального? Тут плохо только то, что формат файла (и вообще что это файл) зашит накрепко в этой фукнции. Если других форматов не нужно, то и нормально. Если нужно, то можно делать полиморфные лоадеры из разных источников и создавать их через фабрику (например) и параметризировать этот метод созданным лоадером. Это если нужна гибкость форматов и носителей, откуда загружаться надо. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.09.2018, 13:10 |
|
|
start [/forum/topic.php?fid=16&fpage=12&tid=1340053]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
63ms |
get topic data: |
13ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
2ms |
others: | 233ms |
total: | 393ms |
0 / 0 |