Size: a a a

2020 July 13

h

humanoid in learn.java
かたかわ
"If a class has more than one responsibility, then the responsibilities become coupled.
Changes to one responsibility may impair or inhibit the class’ ability to meet the others."
"This kind of coupling leads to fragile designs that break in unexpected ways when
changed."
Что подразумевалось под responsibility в вики написано.
Ок если по вашему - класс должен делать только одну вещь, тогда опиши как ты определяешь что такое one responsibility. Условно если внутри метода класса вызывается два других метода - уже две вещи делаются или по названию?
источник

ch

central hardware in learn.java
humanoid
Что подразумевалось под responsibility в вики написано.
Ок если по вашему - класс должен делать только одну вещь, тогда опиши как ты определяешь что такое one responsibility. Условно если внутри метода класса вызывается два других метода - уже две вещи делаются или по названию?
если внутри метода класса вызывается два других метода

Дублировать код что ли предлагаете?
источник

かたかわ in learn.java
humanoid
Что подразумевалось под responsibility в вики написано.
Ок если по вашему - класс должен делать только одну вещь, тогда опиши как ты определяешь что такое one responsibility. Условно если внутри метода класса вызывается два других метода - уже две вещи делаются или по названию?
две метода не должны делать два разных функционала
источник

D𝔇

Dmitry 𝔇𝔪𝔦𝔱𝔯𝔶... in learn.java
На самом деле "один функционал" - это тоже не однозначное определение.
Условно говоря может быть один функционал "сетевое взаимодействие", а может быть 2 отдельных - "прием" и "отправка"
источник

かたかわ in learn.java
humanoid
Что подразумевалось под responsibility в вики написано.
Ок если по вашему - класс должен делать только одну вещь, тогда опиши как ты определяешь что такое one responsibility. Условно если внутри метода класса вызывается два других метода - уже две вещи делаются или по названию?
в книге, в которой ты мне скинул, приводится пример
источник

h

humanoid in learn.java
かたかわ
две метода не должны делать два разных функционала
А как ты отделяешь один функционал от другого?
источник

かたかわ in learn.java
humanoid
А как ты отделяешь один функционал от другого?
отправка и приём сообщений
источник

かたかわ in learn.java
когда я получаю сообщение я его могу обрабатывать
источник

かたかわ in learn.java
перед отправкой сообщения я его могу обработать
источник

かたかわ in learn.java
но даже интуитивно эти вещи друг от друга часто не зависят
источник

かたかわ in learn.java
соответственно, в одном классе этим вещам делать нечего
источник

かたかわ in learn.java
или другой пример
источник

h

humanoid in learn.java
かたかわ
перед отправкой сообщения я его могу обработать
Да и вполне может быть кейс, где эта обработка шариться.
источник

D𝔇

Dmitry 𝔇𝔪𝔦𝔱𝔯𝔶... in learn.java
И собственно хороший дизайн - это когда уровень декомпозиции соответствует конкретной ситуации, а не декомпозируется все по принципу карго-культа
источник

h

humanoid in learn.java
Поэтому причина для изменения у класса будет одна
источник

かたかわ in learn.java
в твоей книге писалось про прямоугольник
источник

かたかわ in learn.java
это тоже хороший пример
источник

かたかわ in learn.java
humanoid
Да и вполне может быть кейс, где эта обработка шариться.
мнне неинтесен кейс, где она может шариться, в моём случае она не шарится и в большинстве случаев она не шарится, ибо если нужно будет впиливать какие-то фичи, то постепенно этот класс разрастётся и будет говнокод, который потом не прочитаешь
источник

h

humanoid in learn.java
かたかわ
в твоей книге писалось про прямоугольник
Ответь себе на вопрос, что тебе дает SRP. Зачем вообще разделять код по модулям/классам?
источник

かたかわ in learn.java
humanoid
Ответь себе на вопрос, что тебе дает SRP. Зачем вообще разделять код по модулям/классам?
читабельность, изменяемость
источник