3

クラスを作成するときに、継承を使用するタイミングと、継承なしで新しいクラスを別のクラスにインポートするタイミングのルールはありますか?

次に例を示します。

と呼ばれるクラスをPerson作成してから、たくさんのPersonオブジェクトを作成します。

次に、という名前の子クラスを作成しますHouse。継承とプロパティを使用して、すべてのPersonオブジェクトに。を含めることができるようになりましたHouse

次に、という子クラスを作成して、CarすべてのPersonオブジェクトにHousesとCarsが含まれるようにします。

など…など…。

私は今、この一連のクラスを持っています:

NSObject<人<家<車<新しいクラス<別の新しいクラスなど。

上記のシナリオでは、私のロジック(私はObjective-Cの初心者です)は、同じ結果を生成する2つの異なる方法があることを示しています。

  1. 上で説明したように、または
  2. 継承せずに各クラスを作成し、それをPersonivarとしてインポートします。たとえば、nowのインスタンスは型になり、プロパティを使用してオブジェクトHouseにインポートされます。Person

用語と理解の欠如をお許しください。必要に応じて、コード例をアップロードできますが、継承を使用するタイミングと使用しない場合の一般的な質問です。

4

1 に答える 1

4

この質問はObjective-Cに固有のものではありません。継承をいつ使用するかについてのガイドラインは、すべてのオブジェクト指向言語で同じであり、リスコフの置換原則によって要約された置換可能性に基づいています。

SがTのサブタイプである場合、タイプTのオブジェクトはタイプSのオブジェクトに置き換えることができます。

つまり、「{派生}は{ベース}>」と言える場合にのみ継承を使用します。「{所有者}には{何か}がある」をモデル化する場合は、構成を使用します

  • 学生人です-継承
  • 乗り物です-継承
  • 家を持っています-構成(ivarまたはプロパティ)
  • には(n)エンジンがあります-構成(ivarまたはプロパティ)
于 2012-04-30T15:40:50.357 に答える