一見複雑に見えるシステムは、実は複雑だったという話

継承しまくってごちゃごちゃな関係性、多くの差分プログラミングで実際の動作がトレースしづらい等などってしばしばオブジェクト指向設計/言語の攻撃材料になるんだけど、そのシステムが本来複雑なら複雑なクラス構成になっても仕方がない。言い方を変えれば、複雑なのは設計や言語が原因ではなく要件が原因で、CだろうがBASICだろうがLispだろうがHOLON(笑)だろうが、その複雑性は拭い去れない。
むしろ、複雑でごちゃごちゃした要件の一部がどこに影響しているのかがわかりやすい分、オブジェクト指向にそった設計の方が安全だとも言える。
もちろん、継承関係じゃないのに継承してたりとかの雑な構成をされると見づらい・変更しづらい。こりゃ仕方がない。それは本来何であるか。