2013-10-13 6 views
0

У меня есть требование сохранения/обновления одного или набора объектов. У меня есть класс для одного и того же. В моем примере я использовал только два объекта, которые сохраняются как частично, так и целиком. Но в реальном случае не может быть больше лиц:Шаблон проектирования для обновляемых объектов

public class Supplier 
{ 

} 

public class Product 
{ 

} 

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

} 

// Соответствующие методы Сохранить Entities

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

И когда вы будете использовать шаблон репозитория, НЕ используйте статический. Также обратите внимание, что интерфейс репо всегда работает с бизнес-объектами и НЕ с объектами orm. Орма представляет собой деталь реализации репозитория, не пропускает ее. – MikeSW

Смежные вопросы