>>643
Cでグローバル変数(が増える)が嫌な理由は、
1.大域的にその変数にアクセスできることが嫌であること
2.グローバル変数のおかげでモジュールの分割が滞ること

javaでクラス定義(が増える)のが嫌な理由は、
1.大域的にクラスをコンストラクトできるということが嫌であるということ
 事実、そのクラスに無関係なコンテクストでもコンストラクトできる
 そんなことはしないとキミは言うかも知れないが、それならCのグローバル変数だって大差ないね、俺もそんなことはしない
 これは事実上のパッケージ内でのグローバルオブジェクトだ
 そしてそうであるがために、必要以上に脳みそを使わざるを得ない
 このオブジェクトは、あのオブジェクトと関係がある、そしてそのオブジェクトとは関係がないってね

2.クラス定義のおかげで、パッケージ分割が滞ること
クラスが増えるということはクラスの依存性そのものが増えるということだ、
もしクラスAがBにクラスBがCにクラスCがDに依存している場合、
そのパッケージはクラスA,B,C,Dを内包するものになるだろう。
そのうちBはFやGに依存するようになり DはV W X Y Zに依存するようになるだろう。
そうしてパッケージはモノリシックなものになっていくし、
事実オブジェクト指向ライブラリは俺の知る限り関数型のライブラリよりも一つ一つの粒度が大きい。
そしてそのライブラリの使い方を調べることほど面倒なことはない
パッケージ分割されていないからこそ、オブジェクトの関係性や依存関係を整理することが苦痛で、複雑性が増す

なぜこんなことになるのかというとオブジェクトがデータ・タイプとメソッド定義を混在させているからに他ならない
もしオブジェクトがメソッドをもたないのであれば、オブジェクト同士の依存性やヒエラルキーは発生しない

俺も正直なぜデータタイプとメソッドを混在させておきながらSRPやDRYが達成できるのか理解できないのだよ