codeseek
TOP
.NETサンプルの解説
プログラミング考
codeseekBlog 
勉強会
ダウンロード
リンク
プロフィール
お読みください











累計:
本日
昨日



mail
・カプセル化をしましょう


私は継承、オーバーロード、Interfaceが嫌いです。

それは、それらがユーザ要件を表現するために使われることが少ないからです。

オブジェクト指向の定義と使い道は人それぞれなんだろうと思うけれども、私の場合は、ユーザ要件を適切に表現するにあたって邪魔になるコードを隠蔽するために使うことがほとんどです。

私にとってのオブジェクト指向は、カプセル化が95%くらいをしめています。それほどカプセル化はオブジェクト指向のもっとも重要な概念だと思うのです。

これまでに読んだものには、見ていると頭痛がしてくる設計がいっぱいありました。オブジェクト指向がしたいだけなのではないかと思ってしまうクラス設計、クラスを整理したいがためのインタフェース、インタフェースを作ったためにせざるをえなくなった継承、型が増えてしまったためにしかたなく作ったオーバーロード。
どれもこれも、ユーザがそう設計してほしいと望んだことではないはずです。目的を達成することを見失って、コードやクラスの構造の美しさに酔っているのではないかと思うこともしばしばあります。

簡潔なコードを書くこと。
これこそが業務でコードを書く人に求められる一番大事なことだと思うのです。複雑で「すばらしい」設計よりも、シンプルなコードの勝ち。


カプセル化して隠蔽しましょう。
カプセル化して粒度をそろえましょう。
そのプロシジャに求められることだけを書くためにクラスを書きましょう。
そのプロシジャに求められることを簡潔に表現するためにクラスをを書きましょう。
同じ場所にかくべきコードを分けてしまわないようにしましょう。
別の場所に書くべきコードを1箇所に書かないようにしましょう。