続 カプセル化と情報隠蔽

コメント、トラックバックでつっこみをいただきました。


http://d.hatena.ne.jp/Isoparametric/20070309/1173408411

encapsulation=まとめて終わりではない、と思う訳です。


"カプセル化"と言った場合、「隠す」は目的であり、一部であり、はずせないことのようです。


ふと思ったのが、「隠す」をしない「まとめる」だけってどうなんだろう?たとえばこんなの。

public class Square{
  public int width;
  public int height;
  public int getSize(){
    return width * height;
  }
}

こういうクラスでも、一箇所に関連項目が書いてて、不自然でもなければ、(あちこち関連項目がバラバラにあるより)修正に弱くはないと思う。


こういう構造体みたいなクラスはカプセル化とは言わないのだろうか?ちょびっとでもカプセル化しているとは言わないのだろうか?カプセル化のカぐらいはやってるとは言わないのだろうか?


とここまで書いてみて気づいた私。カプセル化ってオブジェクト指向用語じゃないか。そうだよ、隠さないと構造体とあんま変わらないじゃないか。なるべく隠して、修正があっても影響を(言語仕様保障で)極小化できるのが偉いのだ。


なんか、最近、チーム作業とかなしだから、かくす恩恵の実感が薄かったのかもしらん。