OOP

final について?

final 周辺について。理想論?いや、理想論大事。 OCP (Open-Closed Principle) 開放閉鎖原則とも。 簡単に言うと、モジュール (ここでは class) は拡張できるべきだが、修正は行うべきではない、という原則。 これを原則に従うと、(もっと一般的な意味での)…

カプセル化、情報隠蔽、データ隠蔽

OOP

あちこちのサイトを見てると、間違った解釈をしてるのが多い。カプセル化なんて、情報隠蔽まで含んでるのが常識になりつつあるような。。。ここまで一般化してると情報隠蔽してるのがカプセル化というのが常識なのかも。 カプセル化・情報隠蔽・データ抽象化…

フィールドと一対一で対応するような setter の問題点

OOP

2月30日は不正だが、d.setMonth(2); d.setDay(30); は不正とは必ずしも言えない。 プログラミング言語/宗教論争 getter/setter を使うか使わないか これはわかりやすくていい例だな。 この場合は (フィールドと一対一で対応しているように見える) 単純な set…

前提がおかしい

OOP

getter/setterでぐぐって見つけたこのページ。 ・・・これはひどいと言わざるを得ない。 これは「オブジェクト指向プログラムで getter/setter メソッドを使わなければならない理由」じゃなくて、「フィールドへの直接アクセスよりは getter/setter を使うほ…

フィールドごとに getter/setter を用意するな

OOP

未だにフィールドごとに getter/setter を用意しろって言う人がいてびっくりするわけですが。 フィールドごとに getter/setter を用意する人の言い分 そうやれって本/Webページに書いてある フィールドに触れないと不便だろう それが OOP だ 言い分に対する…