2011-05-03 105 views
1

我想知道一般對象是否應該基於構造函數中的一個參數來設置它自己。例如:如果在構造函數中指定對象ID,那麼對象本身是否會通過從數據庫中提取其他數據來設置其自己的變量?或者,是否應該明確創建另一個類來創建此對象,然後將該對象隱藏數據庫。對象應該在構造函數中設置自己的屬性嗎?

回答

1

這裏是我的建議

  1. 使用一個ObjectFactory模式基礎上的ID這種結構。任何開始類似於配方的東西,ObjectFactory模式效果最好。

  2. 我不建議在對象的構造函數中使用對數據庫的依賴關係。您也可以將此數據加載邏輯放入ObjectFactory中。

基本上,我覺得一個類的實現應該儘可能的精益。

+0

你會爲每個單獨的對象創建一個對象工廠嗎?或者,一家制造許多物品的工廠? – Titus 2011-05-03 20:40:33

+0

我會爲每個類類型創建一個objectFactory。例如。如果我的課程是'Automobile',那麼我將有一個名爲'AutomobileFactory'的課程,其中包含一些靜態方法,例如'createByName(..)',以便用戶調用通過說'汽車a = AutomobileFactory.createByName(「寶馬」)' – Danish 2011-05-03 20:44:34

+0

'''createByName(..)'然後可以查找數據庫中如何處理名字「寶馬」。我會得到所有需要的細節,並構建一輛汽車 – Danish 2011-05-03 20:45:53

1

另一個類應該可能通過讀取從數據庫創建它所需的值來實例化對象。這是一個更好的問題分離。保存這些值的對象可能只是一個JavaBean,即保存對象的值。我當然不會將數據庫訪問代碼添加到單個對象。

+0

好吧,這就是我想的,謝謝! 〜這是我編碼我的第一個應用程序,雖然嘿嘿 – Titus 2011-05-03 20:33:13

1

取決於場景。但作爲一個經驗法則,您應該嘗試從對象中分離對數據庫的訪問權限。就我個人而言,我可能會使用一個構建器類,它有一個用於數據庫訪問的可注入接口,並且會返回/構建一個對象。

請注意,有許多場景可以讓對象創建自己。

1

如果它足夠複雜,你可以看看實現一個工廠(http://en.wikipedia.org/wiki/Factory_method_pattern)。

我認爲這可能是您在文章中描述的「另一個對象」,它有助於創作。

+0

我發現這個鏈接有點難以遵循,但它是說你可以創建一個工廠,知道如何創建各種不同類型的預先設置的對象? – Titus 2011-05-03 20:39:26

相關問題