上記のクリス・ニコラが「クラスはその消費者に単一の明確な「責任」を提示する必要がある」と言ったとき、私は敬意を表して同意しません
SRPは、クラスの顧客ではなく、クラス内で優れたデザインを実現することを目的としていると思います。
私には、責任が何であるかはあまり明確ではありません。そして、この概念が生じる質問の数が証明されます。
「変更する単一の理由」
また
「説明に「and」という単語が含まれている場合は、分割する必要があります」
質問につながります:制限はどこにありますか?最後に、2つのパブリックメソッドを持つクラスには、変更する理由が2つありますね。
私にとって、真のSRPはFacadeパターンにつながります。このパターンでは、呼び出しを他のクラスに委任するだけのクラスがあります。
例えば:
class Modem
send()
receive()
Refactors to ==>
class ModemSender
class ModelReceiver
+
class Modem
send() -> ModemSender.send()
receive() -> ModemReceiver.receive()
意見は大歓迎です