6/07/2009

C++におけるカプセル化

C++はカプセル化することはまったく考えられていない。としか思えない。
Headerにprivateなものを記述してしまうとそれは内部に持っていることを宣言しているのと変わらない。ただアクセスは出来ませんという意味しかない。
C++のHeaderを渡さないと変数のMapが分からないという性質から、仕方がないけど、privateなものの宣言にははなはだ向かない。
ということは、C++はデータの構造をさらすことを重要と考えるほかない。基本はstructでしかないので、そのことを念頭において考えると、データの凝集性と抽象度が重要に思える。そして何よりもPropertyなどのカプセル化に関して重要なパラメータのためのインターフェイスはおいておかれているので、片道的なアクセス方法以外を宣言する必要性がない。そして、あまりにプロパティの宣言が煩雑なので、関数の内部で、自身が使う変数が妥当であるのかということを調べる共通の関数を作っておくべきであろう。
あとは関数についてはあいまいさがないようにすべきである。内部を全て知ってもらうつもりでないならば、なおさらである。関数の動詞部分と修飾部分で動詞と判断できるものが重複していると混沌を極めるのでこれに留意したい。

また別件だが、TextEditorを買った。
MIFESというMEGASOFT社製の製品である。DOSの時代からの古参である。
従来のポータビリティとライセンシングとの関連上フリーのテキストエディタに比べて使いにくいかなぁと思う。しかし強力な検索機能やカスタマイズ性があるので、トレードオフかなぁ。
ただ表示の美しさは驚きに値する。
正直な話、Editorとしての機能をVSが開放してくれるといいのですけどね。

0 件のコメント:

コメントを投稿