2012-12-26 58 views
3
 Customer cust = new Customer(); 
     cust.RecId = lblRecId.Text; 
     cust.CustCd = txtCustCd.Text; 
     cust.CustName = txtCustName.Text; 
     cust.Save(); 

OR不知道在哪裏問,哪個1實際上更好?

cust.SaveRecord(lblRecId.Text , txtCustCd.Text, txtCustName.Text) 

都做同樣的工作,但實際上1比較好?我和主角實際上對此有爭論,我使用頂級方法,因爲我可以以任何順序自由分配值,但他堅持底部1更好?不知道究竟要搜索什麼,任何一個頭腦給我一些指導,在這

+0

第一個更好,因爲如果您的客戶類別發生變化,它可以擴展爲包含更新的屬性 – ryadavilli

+0

底部似乎更好,因爲代碼兼容性在那裏被考慮......直到我的知識 –

+5

定義「更好」。爲了什麼?可讀性?可維護性?代碼行?性能?內存使用情況?還有別的嗎? – Oded

回答

2

第一個是更好的方法。但這是個人觀點。

Save應該堅持對象的當前狀態。並且可以在程序的其他部分更新狀態。

然而,有一個過載Save也不是壞主意。但作爲沒有。的領域增加後者的版本變得笨重和不可維護。

+0

所以,你說你真的應該投票結束,因爲沒有建設性? – Oded

+0

是的,同意這不是建設性的。但仍值得回答。再次是個人觀點。 :) – Azodious

+0

任何鏈接獲取關於這兩個更多的信息?我不想讓它成爲辯論,我只是想獲得更多的知識,所以我可以在這些之間進行研究,對於廢物抱歉 – Se0ng11

2

如果您已經擁有客戶類中的客戶的所有數據,那麼第一種方法非常好。 如果您沒有數據的客戶類,則第二種方法更好。

我們經常使用的第一種方法,但後來我們也有一些靜態方法來與特定鍵如檢索客戶:

// A static method in Customer class. 
public static Customer Get(string key) 
{ 
    Customer customer; 
    FCustomers.TryGetValue(key, out customer); 
    return customer; 
} 

這帶有加載所有客戶到內存和方法靜態構造函數從數據庫創建,保存和刪除客戶。

這是因爲只與所有時間都需要的數據相關,我認爲客戶不是那種數據。