2016-08-03 7 views
-3

私はオブジェクト指向プログラミングの概念をテストすることになっています。私はOOプログラミングについて非常に詳しく知っています。私の唯一の問題は、インタビューの中でホワイトボードにOOモデルを作る方法を示し、他の人がインタビューのためにモデル化した過去の例として私にRubixキューブまたはギターを与えたことです。コーディングインタビュー:OOデモをモデル化するには?

私の心配は、Personクラスのようにあまりにも単純すぎて、私が知っているすべての概念を伝えていないことです。しかし、私はRubixキューブのように抽象的なものを選びたくはありません。私のインタビュアーがそのアイデアを嫌い、その実用性や拡張性に疑問を抱かせるかもしれません。私はまた彼が以前見たことを彼に与えることもしたくない。

私の最初の考えは、実際の世界の例であるため、釣りで何かをすることでしたが、私はそれを楽しんでいますが、それはあまりにも単純な概念かと思います。簡単な例として、次のように:

abstract class Fisherman { 
    abstract protected function fish(); 
} 

class Angler extends Fisherman { 
    protected function fish() { 
    $this->cast(); 
    } 
    private function cast() { 
    echo "Casting Rod"; 
    } 
} 

class CrabFisherman extends Fisherman { 
    protected function fish() { 
    $this->place(); 
    } 
    private function place() { 
    echo "Placing Crab Pot"; 
    } 
} 

だから私の質問は、私はオブジェクト指向の概念の最高のショーを理解するためには、符号化面接のためのオブジェクト指向的に何をモデル化する必要があり、ありますか?漁師のように、単純な人のクラスをするのは大丈夫ですか、それとも封筒を押してください。最初の実際のエンジニアリングのインタビューで、私はテーブルに何を持ってくるのかよく分かりません。

+2

インタビュークラスを作成してみませんか?今あなたは面接をコントロールします:-) –

+0

thats素晴らしいアイデア!陽気で、そして私は彼らがそれを見ていないと確信している –

答えて

2

あなたの例は、まっすぐな継承であるため、あまり良い例ではありません。彼らが与えた例は、複数のオブジェクトが合成されたシステムです。ギターにはボディ、ストリング、チューニングペグがあります。本体には弦とチューニングペグの両方が入っています。チューニングペグは、ストリングが演奏する音符を変更するように設定することができます。さらに、体にさまざまな種類の文字列を与えることができます。エレキギターにはピックアップ、ボリュームコントロールなども追加されています。ルビーキューブには同様にコア、サイド、キューブがあります。

釣りが好きな人は、フィッシャーと釣竿をタックルでモデル化する方がよいでしょう。ロッド、リール、ライン、ウェイト、フロート、フック、ベイトはすべて、釣りの基本的な動作の変更なしに変更することができます。装備された漁師は、異なる漁場に配置することができ、成功は構成に依存する。

+0

私の質問を考える時間を取ってくれてありがとう、コレクションで釣り具を使うという素晴らしいアイデアだと思っても、TackleBoxクラス –

関連する問題