Проблема действительно проста, у меня есть класс «Stock», я хочу загрузить его свойство «StockName», «StockCode» из БД.
так какой паттен мне использовать?
шаблон 1) Используйте класс обслуживания для его создания
public interface IStockService{
Stock GetStock(string stockCode);
void SaveStock(Stock stock);
}
public class StockService : IStockService{
}
IStockService stockService = new StockService();
Stock stock = stockService.GetStock();
шаблон 2) Использовать статический метод на складе
public class Stock{
public static Stock GetStock(){
Stock stock = new Stock;
//load stock from db and do mapping.
return stock;
}
public void Save(){
}
}
шаблон 3) Используйте конструктор для загрузки
public class Stock{
public Stock(){
//load stock from db and do mapping.
this.stockName = ...
this.stockCode = ...
}
}
для шаблона 1: кажется, что для создания стокового объекта используется так много кода, а метод SaveStock кажется немного неориентированным на объект.
для шаблона 2: метод «Сохранить» выглядит нормально, но метод GetStock является статическим методом, кажется, что класс Utility всегда использует статический метод.
для шаблона 3: конструктор будет загружать данные из базы данных при инициализации. кажется, что он также сбит с толку.