C#, C♯, C#相談室 Part46
■ このスレッドは過去ログ倉庫に格納されています
0201デフォルトの名無しさん
2008/05/13(火) 21:45:09たとえば、C++でいう所の仮想テーブルは、virtual などなくても class のみで作り出すことができる。
これは非常に重要なことで、仮想テーブルは書き換えられないが、自分で作った仮想テーブルは書き換えられる。
このような実装は、Strategyパターンと呼ばれる。
つまり、classを使った抽象化は実は必要なく、ただ『頻繁に出てくるので言語上にvirtualとして実装しておくと便利であるという程度の意味』しかないのだ。
オブジェクト指向を理解する上で、この点について理解しているかどうかは決定的だ。
理解せずクラスと継承を中心に置くとやれる事が一気に限定されてしまうのだ。
さらには、継承には各種問題点も指摘されてり、特に深い継承は良くないと最近はされている。
また原則、継承を考える前にインターフェイスを検討するべきとされている。
参考コーディング規約
http://www.kawabata.com/dotnet/CodingStdCS.pdf
参考サイト
http://www.objectclub.jp/
■ このスレッドは過去ログ倉庫に格納されています