>>616
どっちでもいいわけじゃなくて
メソッドの中身は手続き型でも
隠蔽されていることが重要なの
カプセル化されているかどうかの違い

「STATUS = 1」みたいなフラグを知らないと
関数やメソッドを利用できないのは構造化的な世界で
オブジェクト指向の世界ではそれは隠蔽する
外部からは最低限のAPIだけで利用できるのがメリット

>Order.cancelだけ知ってれば、って、
>Cancelが闇鍋になんじゃん。
隠蔽が闇鍋ってのはそういう面もあるけど

キャンセルの責務がCancelerに限定されてるから
キャンセルでバグがあるならCancelerだけいじればいい

対して構造化的なデータと処理で分けて
フラグのバケツリレーみたいなことだと
影響範囲がどこまであるのか分からなくなる
つまり闇鍋の中身がどこまでも拡散していっちゃう

だからある程度の規模になると相対的に
オブジェクト指向の方が保守しやすい