相続について、あなたは知っておく必要があります

多重継承を使用するためのいくつかの専門分野は何ですか?親指#1のMIルール:/呼び出し元コードからステートメントを切り替える場合はそうする場合にのみ使用し、継承が削除されます。理由:これは離れてしばしば良いことである「無償」継承(単一または複数の品種のいずれか)、から人々を操縦します。もしあなたが、多くは、あなたが間違った考え方に感染していること:あなたが動的バインディングなしで継承を使用していますが、注意しましょう、いくつかの時間があります。具体的には、継承は、コード再利用のためではありません。あなたは時々継承を経て少しコードの再利用を得るが、継承のための主な目的は、動的バインディングであり、それは柔軟性のためです。組成物は、継承は、柔軟性のためのものである、コードの再利用のためのものです。この経験則は、MIに特有のものではなく、継承のすべての用途に汎用的です。親指#2のMIルール:あなたはMIを使用するときいろはを使用することが特に難しい試してみてください。特に、参加クラス上のほとんどのクラスは、いろはする必要があります(多くの場合、クラス自体への参加します)。この文脈では、「ABC」を単に「少なくとも1つの純粋仮想関数を持つクラスを」という意味ではありません。それは実際には、ほとんどの(多くの場合、すべての)そのメソッドが純粋仮想であることをできるだけデータを持つクラス(多くの場合なし)を意味し、純粋なABCを意味します。理論的根拠:この規律はあなたが二つの経路に沿ってデータやコードを継承する必要がある状況を回避するのに役立ちます、プラスそれはあなたが正しく継承を使用することを奨励しています。この第二の目標は微妙ですが、非常に強力です。特に、あなたはコードの再利用のための継承を使用しての習慣にしている場合には、(怪しげな最高の状態で、上記参照)、親指のこのルールはMIから離れてあなたを導くでしょうし、おそらく離れ継承-のためのコードの再利用から(願わくば!)最初の場所インチ 言い換えると、親指のこのルールは常に安全である相続-ためのインタフェース・代替性、に向かって人々をプッシュする傾向があり、離れ継承-ジャスト・ツー・ヘルプ・ミー書き込みレス・コード・イン・私の派生クラスから、その安全ではない(常にではない)ことが多いです。親指#3のMIルール:多重継承への可能な選択肢として「ブリッジ」のパターンまたはネストされた一般化を考えてみましょう。これは、MIと「間違っている」ものがあることを意味するものではありません。それは単に、少なくとも3つの選択肢があることを意味し、そして賢明な設計者が最適な選択する前に、すべての選択肢をチェックアウトします。多重継承の可能な選択肢として「ブリッジ」のパターンまたはネストされた一般化を考えてみましょう。これは、MIと「間違っている」ものがあることを意味するものではありません。それは単に、少なくとも3つの選択肢があることを意味し、そして賢明な設計者が最適な選択する前に、すべての選択肢をチェックアウトします。多重継承の可能な選択肢として「ブリッジ」のパターンまたはネストされた一般化を考えてみましょう。これは、MIと「間違っている」ものがあることを意味するものではありません。それは単に、少なくとも3つの選択肢があることを意味し、そして賢明な設計者が最適な選択する前に、すべての選択肢をチェックアウトします。

おすすめ

転載: www.cnblogs.com/cutepig/p/11618791.html