我有一个问题,这里有一个示例
我有一个Model类:Stock
public class Stock{
//some properties, stock name, stock code;
public String StockName{
get,set
}
public String StockCode{
get,set
}
}
Run Code Online (Sandbox Code Playgroud)
我还有一个服务类StockService,它将从数据库加载数据并创建库存并设置属性值.
public class StockService:IStockService{
public Stock CreateStockByStockCode(string stockCode){
Stock stock = new Stock();
//load the data from db and set the stock's properties.
stock.StockName = ...
stock.StockCode = ...
}
}
Run Code Online (Sandbox Code Playgroud)
所以,我的问题,我有一个"Save()"方法,我应该放在哪里,
Option1:把它放在Stock类中,
public class Stock{
public void Save(){
//use the repository to save into db.
}
}
Run Code Online (Sandbox Code Playgroud)
Option2:把它放在服务类中
public class StockService:IStockService{
public void Save(Stock stock){
//use the repository to save into db.
}
}
Run Code Online (Sandbox Code Playgroud)
我认为对于选项1:股票似乎有点聪明,它可以自我保存,更多的是面向ojbect.对于option2,我看到很多人都使用这种模式.你有什么想法?
您可能希望阅读Active Record模式和Repository模式.你在这里介于两者之间.
Active Record被认为是"更简单",而Repository更"纯粹",因为您可以更好地分离关注点(您的实体不需要关注数据访问).