2013-10-13 64 views
0

我有一個要求保存/更新單個或實體集合。我已經寫了同樣的課。在我的例子中,我只使用了兩個正在保存的實體以及整體。但在實際情況下,可能會有更多的實體:更新實體的設計模式

public class Supplier 
{ 

} 

public class Product 
{ 

} 

public class Data 
{ 
    public Product prod { get; set; } 
    public Supplier supp { get; set; } 

} 

//通訊的方式來保存實體

public static class ProductFactory 
{ 
    public static void Save(Product prod) 
    { 
     //Save Product table 
    } 

} 

public static class SupplierFactory 
{ 
    public static void Save(Supplier supp) 
    { 
     //Save Supplier table 
    } 
} 

//Method to Save All ENTITIES 

public static class DataFactory 
{ 
    public static void Save(Data data) 
    { 
     //Save Data which Consists Product and Supplier 
     ProductFactory.Save(data.prod); 
     SupplierFactory.Save(data.supp); 

    } 

} 

//Implemention of Save 

     Product prod = new Product() ; 
     Supplier supp=new Supplier(); 
     Data data=new Data() ; 
     //Saving Product individually 
     ProductFactory.Save(prod); 

     //Saving Supplier individually 
     SupplierFactory.Save(supp); 

     //Saving Data which Consists Supplier and Product 
     DataFactory.Save(data); 

任何人可以提出任何更好的設計?在產品/供應商之上可能會有更多的實體。

回答

1

查看存儲庫模式,您將最終獲得將處理所有CRUD操作的「存儲庫」類。如果你打算使用諸如依賴注入之類的東西,將所有的CRUD操作放在不同的層中將會對你有所幫助。

+0

而當您使用存儲庫模式時,請勿使用靜態。還要注意,repo接口總是適用於業務對象,而不適用於orm實體。 orm是存儲庫的實現細節,不要泄漏它。 – MikeSW