2012-08-28 61 views
2

嗨我正在編寫我自己的高級API的亞馬遜的PHP SDK,用於操縱DynamoDB,一個nosql數據庫。模塊化背後的設計模式?

我發現自己爲單個函數寫了大約150行代碼,執行一個操作,包括錯誤檢查,請求構建以及當然還有註釋。如果我繼續這樣做,那麼API類可以輕鬆超過一千行,我認爲這有點難以維護。

因此,我正在考慮將我的課分成幾個小班,每個小班處理一組操作。比如說,表格操作,項目操作和批量操作。但我不是軟件設計模式方面的專家,所以這真是一個模塊化的好方法嗎?或者是否有我應遵守的設計模式,並使我的代碼更易於維護?

+1

你應該做的第一件事是通過編寫處理特定的任務類模塊化程序。設計模式是一個更高級的問題,有助於代碼重用和集成。所以你應該根據你的軟件架構仔細考慮它。你可以在這裏閱讀更多關於它的信息:www.oodesign。com – mostar

回答

3

你的問題有點主觀,因爲你沒有提供代碼,所以我們可以看到你實際上想要完成的事情。

但是,您需要將您的課程分成更小的組件,每個人都有自己的責任。沒有一種模式可以說明如何做到這一點,但Single Responsibility Principle是一個很好的開始。這是關於separation of concerns

你說:

[...]包括錯誤檢查,要求建設[...]

你去那裏,分離錯誤檢查,從要求建築 ,然後再將它們分成更小的組件,每個組件只有一個責任。您必須有只是一個原因來更改每個組件,從不多於一個。您必須定義一個明確的域模型,併爲每個域對象提供專用服務。

舉個例子,@teresko的答案在這裏:

How should a model be structured in MVC?

所以,請記住,你需要separate your application。該請求是表示層的一部分。哪些在現代MVC-alike apllications由控制器層和視圖層組成,它與模型層交互以便爲給定請求準備演示文稿。

參見:http://martinfowler.com/eaaCatalog/

+0

感謝您的回答!是的,我已經有一個類來檢查錯誤,但每個函數仍有20多行代碼調用相應的錯誤檢查方法,因爲只有很多參數(6〜8)。對於評論......可能沒有人負責評論這裏大聲笑。 –

+0

你提供的MVC問題看起來很有趣,而且答案非常有幫助,我讀了一點,但還沒有完成......當我有時間時,肯定會閱讀它。這真的幫助我看到了更清晰的現象。 –

+0

我想我是如何以某種方式將我的課程分開取決於我如何在這裏爲每個功能分配類似的代碼。 –

2

我想我和你在同一條船上。我有很多課程來保持目標太多。看看下面的網頁,這對我有幫助:http://www.dofactory.com/Patterns/Patterns.aspx。還有Google:SOLID(http://en.wikipedia.org/wiki/SOLID_%28object-oriented_design%29)。這些針對.NET和麪向對象的編程,但我知道PHP有類和對象。

+0

感謝您爲我提供的文章,它看起來很有幫助,有時會通讀它。 :D –