オブジェクト指向

よくまとまってるなあ、と思ったので転載

モデリングとか再利用性ってOOPの重要な要素であっても最大の要素ではないと思うんですよ。OOPの最大の要素ってpolymorphismで、それを本当に要求される場面というのは条件分岐点で、それを使うことによってif構文やswitch構文をつぶして関心領域を小さくすることだと思うんですよね。この関心領域の数が増えたり減ったりというのがOpenで、中の実装を変えてもそこの関心領域にしか影響がないのがClose。こうやっておくと分岐点を正しく認識すればその分岐点に対しての仕様変更・拡張が容易に行える。幸せになれる。だからOOPきちんと覚えて使いこなしましょう♪モデリングにしても現実なオブジェクトのキーワードだけではだめで、こういった関心領域(つまりドメイン)をうまくデザインしなくてはなあ、と書いてて言語化できました。

自分はOOを満足に理解していないんで「OO厨ってなんで?」って感じだったんだけど、オブジェクトを作ること自体が目的になってるってことか。オブジェクトを作ることでどんなメリットがあるかってことが重要なのに。手段と目的の混同。パソコン自作の目的がベンチマークだったりするのと感覚的に似てるような気がする