2013-04-10 59 views
1

我通過對如此不同的問題去,並試圖找出什麼是設計一個應用程序。我發現,某個地方,這是寫我們應該做的類的對象,如果它的最好辦法狀態this面向對象的設計模式查詢

我發現在相同的頁面上應該避免公用事業,所以我的問題是如何實現功能。我們不能創建對象,因爲功能可以具有且不能具有狀態。而且我們也不能使用靜態方法。那麼怎麼樣。

P.S ----我的問題可能是外行bcoz我是新手想學習/實現設計模式,以便將對子級高興,如果有人能提供給我閱讀材料,結合實例鏈接。

我從理論上知道一些設計模式。

+2

我們如何實現*哪些功能?你在尋找一種可以解決問題的設計嗎?這不存在。 – 2013-04-10 15:41:00

+0

如果有疑問 - 請參閱對象。在常規實踐中 - 如果您正在創建任何靜態類,那麼很好,靜態類內的任何靜態函數都不應該使用任何參數/或函數範圍外的成員。 – dekdev 2013-04-11 01:23:34

+2

在我看來,你正在與基礎戰鬥。如果您無法確定某件事是否應該是一個對象或應該有一個實用工具類,那麼您還沒有準備好使用高級設計方法,因爲您無法瞭解您是否在正確的環境中使用它們,是必須的,因爲設計模式不是萬能的。我並不是說你不應該閱讀模式並嘗試使用它們,我說的是在這個階段你不應該把它們當作法律來對待。 – 2013-04-11 07:53:21

回答

6

您正在閱讀的指導方針和對待他們喜歡的任務,它使您可以用過於嚴格的規則編碼的做不到位。

準則是指導原則,不超過此限。如果不使用實用程序類是一個好主意,那麼不要使用它們很多。有節制地使用它們,這是有道理的。

如果它是一個糟糕的主意(它是)使用一些全局變量,那就不要做了很多。但是,如果你需要一個靜態助手類,其中有一個或兩個變量可用於應用程序,那麼在這種情況下執行。

不要將準則視爲法律。把它們當作指導方針,並在有意義時去反對它們。你只會通過編程獲得這些知識。所以開始做吧,犯錯誤,從中學習,並隨着時間改進你的代碼。從一開始你就無法完美地完成它。

+2

希望我有超過1個upvote。 – 2013-04-11 01:51:52

+0

這種方法的問題是,直到你強迫自己完全沒有網絡(靜態「東西」)工作,你將不會學習如何正確設計沒有他們。我不知道很多人已經學會了如何避免靜態的問題,他們急於添加其中的一部分。 – 2013-05-07 01:18:14

+0

請注意,新手可能無法退出「冷火雞」,但我認爲這麼多開發者創造「大泥巴球」的原因是有人告訴他們類似於上述的東西,他們從來沒有超過像拄柺杖那樣靠靜力學的階段。 – 2013-05-07 01:23:58