2010-12-28 5 views
3

非常に基本的な質問ですが、「デザインパターン:再利用可能なOOソフトウェアの要素」の本を読んだ後、少し混乱します。デザインパターン:タイプとは

本の状態は、

「オブジェクトの型は、それが応答できる 要求のその インターフェイスのセットを指します。オブジェクトが異なる クラスの 多くの種類、およびオブジェクトを持つことができます同じタイプを持つことができます。

タイプが何であるかを説明してください。私はまた、1つのオブジェクトが複数の型を持つことができないことを理解していません...本が多型を話さない限り...

答えて

1

例がわかりやすくすることがあります。クラスは特殊な種類のものだとします。

class Dog : Animal {...}; 
    class Fish : Animal {...}; 
    Dog lassie = new Dog(); 
     // An object can have many types: 
     // lassie is a dog and an Animal 

    Fish nemo = new Fish(); 
    // objects of different classes can have the same type: 
    // lassie and nemo are animals 
+0

"lassie"を意味しましたか? :-) – paxdiablo

+0

固定タイプミス – k3b

1

この型は、必ずしもオブジェクト型とは限りません。

これは、オブジェクトが提供するサービスの意味でタイプについて話しています。これは、複数の継承を持つ複数の型、または複数のインタフェースを持つ実際の型です。

たとえば、Javaの下では、別個のユーザー入力インターフェイス(キーボードとマウスのI/O)を提供するアプリケーションクラス(実際のタイプ)を使用できます。

これは、複数のタイプを持つオブジェクトの例です。

同じ「タイプ」(見積もりの​​意味)を持つ複数のオブジェクトの例は、square,rectanglecircleなどの古典的な幾何学的形状クラスです。インタフェースがsetPosition(),setSize()およびdrawShape()であるため、これらの異なるオブジェクトはすべて同じ「タイプ」を持つ可能性があります。

0

タイプを契約と考えてください。あなたが動物園を持っていて、あなたに動物の量があるとします。

まあ、どの動物であれ、あなたには割り当てられたケージがあることを確認できます(例)。動物が哺乳類であれば、哺乳動物の詳細を得ることができます。彼らが水泳選手であれば、自分が選んだ水の温度を得ることができます。

この場合、IEntity、IMammal、ISwimmerの種類が多く、特定のオブジェクトがあります。たとえば、ペンギンはIEntity型でISwimmer型です。タイプ・コントラクトの類推を念頭に置いておきましょう。そのため、タイプによって、特定のオブジェクトが応答できる要求が示されます。契約では何ができるのか、特定の契約タスクに対して何ができないのかが示されます。

私の回答が役に立ちます

関連する問題