2016-08-03 83 views
-3

我很快就要進行一次編碼訪問,這是爲了測試我的面向對象編程概念。我非常詳細地瞭解面向對象程序設計,唯一的問題是他們要求在採訪過程中我會展示如何在白板上製作面向對象模型,並給我一個Rubix立方體或吉他作爲其他人爲面試建模的過去示例。編碼採訪:面向OO演示的模型是什麼?

我的擔心是做一些過於簡單化的事情,比如Person類,並沒有傳達我所知道的所有概念。但我也不想挑選像Rubix cube那樣抽象的東西,因爲面試官可能會討厭這個想法並質疑其實用性或可擴展性。我也不想給他以前見過的東西。

我的第一個想法是做一些與釣魚有關的事情,因爲它是一個真實世界的例子,我喜歡它,但我不知道它是否太簡單了。像這樣的一個簡單的例子:

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

這是個好主意!這很搞笑,我敢打賭,他們還沒有看到 –

回答

2

你的例子不是很好的例子,因爲它只是直接繼承。他們給出的例子是具有通過組合連接的多個對象的系統。吉他有一個身體,琴絃和調音釘。身體包含字符串和調整釘。調音釘可以設置爲改變絃樂播放的音符。另外,你可以給身體不同種類的琴絃。電吉他增加拾音器,音量控制等。該rubics立方體同樣有一個核心,側面和立方體。

如果你喜歡釣魚,或許更好的模型漁具和釣魚竿帶滑車。在釣魚的基本行爲中,棒,卷,線,重量,浮子,鉤子和誘餌都可以改變而不改變。裝備好的漁民可以部署到不同的捕魚地點,成功取決於配置。

+0

感謝您花時間思考並回答我的問題,這是一個在集合中使用漁具的好主意,我甚至認爲它可以在TackleBox類中收集 –