2011-05-25 34 views

回答

4

不,它不是。

設計你的對象應該是你的首要任務之一,而不是你的最後一個。

一個好的面向對象的開發人員會着眼於一個問題,決定創建哪些對象,創建這些對象,然後將它們編織在一起以解決更大的問題。

如果你試圖讓一個巨人類自己處理所有的工作,你將得到非常緊密耦合的代碼,這些代碼不能被分解成類......但可能已經如果你預先設計好了代碼。

+1

不一定。如果賦值確實是一些像招聘問題那樣的謎題,那麼以不妨礙思維過程的方式(僞代碼,python等)計算出關鍵算法,然後將該原型轉換爲表現良好,看起來不錯等等。擔心OO設計可能不是最有效的第一步。 – 2011-05-25 13:51:31

+0

@ scompt.com - 如果OP在訪問中被問到一個算法問題,我不會期望他們擔心使OO適當(因爲大多數算法問題都集中在算法上)。這聽起來像是一個設計問題。 – 2011-05-25 13:52:47

+0

面試問題測試邏輯和良好的面向對象的設計實踐。這個難題是基於「約翰康威的生命遊戲」。我有邏輯想通了。 – anon341 2011-05-25 13:55:22

0

我會嘗試用可能的方法來回答。 首先將你的問題寫入你想解決的一些句子中。從這些句子名詞是你的類和變量。動詞是你的方法。從這一點開始,您可以開始編寫代碼的第一個版本

0

在編寫生產代碼時,我的經驗是,實際操作在中間的某處。在設計系統時,想出您認爲需要的課程(請參閱Skyzer的回答,以尋求解決問題的好方法)。當你實際執行你的解決方案時,你可能會遇到一些對象變得太大的問題。做得太多。此時,您可以再看一下設計,看看是否可以將物體分解成幾個較小的物體。每個對象都應該負責一件「事物」,但是隨着時間的推移,對於一件「事物」的定義會隨着一個給定的「事物」變得更加複雜而發生變化。

類似於這個方法/命令的寫作。每個命令都應該做一件事,並做好。對我而言,這意味着爲該命令編寫測試很容易,因爲測試可以非常清楚地定義命令的功能。當命令執行的內容太多時(大量的邏輯分支如if引起越來越多的測試是一個很好的指示),將命令分成多個小的分支,每個分支都可以被測試。