カプセル化
知識の集約
関係ある話は内部に入れる
安全に容易に使えるようにする
公開されているものをどういう順序、組み合わせで実行してもバグらない
カプセル化は、抽象化の一種、と見なせるはずmrsekut.icon
そもそもプログラミングに出てくる技法はだいたい抽象化なので、それらの「抽象化」と、OOPにおける「カプセル化」の差異は明確に言語化される必要がある
変数を作ること、関数を作ること、モジュールを作ること、ライブラリを作ること、全部抽象化であって、これらはOOPでなくとも、手続き型でもfunctional-orientedでも同様に行われる操作である
「OOPとはなにか」系の記事では、たいてい「カプセル化です」と書いてる感じがするが、このカプセル化の抽象化と、ソレ以外のパラダイムにおける抽象化の差異を明確にしたい
その上でやっと、「カプセル化の重要性」について議論でき、さらに「OOPの重要性」について議論できるはず
というか、「カプセル化」はそもそもOOP関係なくある概念なので、OOPのことはいったん忘れていい