2008-10-10 64 views
0

即時通訊創建一個工廠類,將構造並返回一個對象。我通常會在數據訪問層完成所有的數據工作,但我不認爲我可以達到我的目標,但仍然這樣做。我想要做的就是使用SQLDataReader快速讀取數據信息並填充要從工廠返回的對象。這是一個愚蠢的想法嗎?有更好的方法嗎?如果可能的話,我寧願不僅從DAL返回一個DataSet,還是它是一個性能與可維護性的問題?工廠類 - 我應該在這裏用數據填充我的對象嗎?

回答

1

在大多數情況下,這是一個好主意,因爲這種方式提供了兩大好處:

  1. 這種方式可以單獨的數據訪問和業務邏輯,如果更改數據庫設計的上層算法,這意味着不需要改變。

  2. 從面向對象的立場來看,要轉換一些純數據爲對象,也可以添加行爲的對象,這使得代碼更易於維護和可重複使用的。

0

如果你確定你要使用你從SqlDataReader的加載數據的,那麼,你可以在工廠的建設時間做到這一點。但是,如果數據集有很多字段,只有少數字段會被使用,那麼在訪問者被調用時按需加載數據會更好地利用資源。

不過,我建議你加載它在出廠的時候你把所有的「作品」在手,如果它是不準確的,你就會知道什麼需要修理。總是從可能有效的最簡單的事情開始。

+0

非常感謝您對您的意見,這也是我會嘗試。 – schmoopy 2008-10-10 00:51:15

0

我想說這取決於您對工廠的預期用途。如果這是您的數據訪問層上的一個工廠,它將用於使用數據庫中的數據填充業務對象,那麼是的,這是做這件事的地方。 (IRepository模式就像這樣...)。

如果工廠不打算住在靠近你的數據訪問代碼,我將讓他們分開。記住Single Responsibility Principle:對象應該只有一個改變的理由。如果工廠只是用數據填充對象,那麼這是一個合適的用途,但是如果它除了做其他事情之外還用數據填充對象,那麼最好不要添加數據。

有取捨無論怎樣你走了,所以一般我喜歡想保持物體儘可能簡單,只要可能的。

相關問題