170 похожих чатов

Вот тотже S, оно всегда упрощает жизнь и улучшает код?

10 ответов

17 просмотров

он вообще может быть несовместим с основой ооп. объект представляет некоторый аналог физического объекта. а в физических далеко не всегда 1 ответственность, есть многопрофильные объекты

Океаний 💜 Океаний 💜
он вообще может быть несовместим с основой ооп. об...

Я вижу тут явное не понимание, другую ответственность выполняет не сам объект а другой объект по средствам композиции/агрегации. Весь смысл солида это декомпозировать весь функционал. Для открытости-закрытости интерфейсы. В итоге классы маленькие, классы получают зависимости через di и всё понятно и гибко

Stas
Я вижу тут явное не понимание, другую ответственно...

Часто вместо 5 классов 15, и обычно понятность только уменьшается если следовать этому принципу жёстко и бездумно. Моё мнение что класс должен выполнять одну некоторую логику. Может содержать ряд ответственности если они схожие или в одну тему.

Океаний 💜 Океаний 💜
Часто вместо 5 классов 15, и обычно понятность тол...

но даже главное не в этом, а в том что большинство людей не имеют своего мнения и просто тупо следует принципам думая что это единственное высшее благо

Океаний 💜 Океаний 💜
Часто вместо 5 классов 15, и обычно понятность тол...

Ну вот сейчас будем размывать понятия ответственность и логику. Единая ответственность это единая ответственность. Это к тому что объект не должен ЯВНО собирать урожай морковки и выпикать пирожки. Тут же можно возразить. Так ведь например это человек, у него ещё 1000 разных методов. Всё верно, но в рамках ООП для решения этой задачи объект человек будет в себе содержать сложные по иерархии и структуре объекты которые будут решать более абстрактные задачи и где-то там в конце иерархии будет объект с методом "собирать урожай морковки" и где совсем в другом месте объект с методом "выпикать пирожки". А у человека будет только 2 метода, "родится" и "умереть". Конечно очень абстрактно но думаю смысл применения единой ответственность я донёс. Естественно все буквы солида между собой пересекаются и следует воспринимать их не по отдельности а вместе

Stas
Ну вот сейчас будем размывать понятия ответственно...

Я с этим согласен. Я не согласен с возвеличиванием этого принципа, что только так и никак иначе. Это один из возможных подходов. Может быть и без него. И это не есть хуже.

Stas
Ну вот сейчас будем размывать понятия ответственно...

Мне кажется что в твоём примере класс человек уже не удовлетворяет S, несмотря на композицию.

Океаний 💜 Океаний 💜
Я с этим согласен. Я не согласен с возвеличиванием...

Ну ничего абсолютного не бывает. Но бывает часто недопонимание что имелось ввиду. Например единая ответственность не ограничивает количество методов - например паттерн строитель, сам строитель может иметь 10-20 метод, но заниматься сам класс только одним - подготавливает и строить большой объект

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Карта сайта