どの様な話?
関数は、
- 得やすい自然な値の入力
- 変換1
- 責務(その世界の支配的な少数の前提)の実装
- 変換2
- 欲しい自然な値の出力
と言う構成を取ると思います。
そうなると、
- 外から見た責務と実際の責務にずれが生じる
- 何を以て単一の責務というのか解らなくなる(外から見た? 実際の?)
と思います。
それを解決するために、
1つの関数で無く、複数の関数をまとめて、1つのクラスにした場合、
- クラス内で終始する複数の責務が同じクラス内に出来てしまう。
と思います。
一番自然なのは、
一番自然なのは、
- 複数の責務がクラス内に有っても良い
- それら全ての責務が1つのクラス内で終始していさえすれば良い
(utilsクラスなんてのも、一理有ると思います。)
だと思います。1つのクラスを1つの責務のみに強制するのは不合理だと思います。
結論
不当に厳しい「1つのクラスに1つの責務のみ」という不自然な制約を課せれる事で、これからも「責務と入出力のずれ」により、プログラミングが嫌いになる人は存在し続けることでしょう。