我很想知道 ASP.NET MVC 中服务层的一个很好的例子(提供一些代码)是什么?

  • 它究竟应该包含什么?
  • 它应该与什么解耦?

  • 谢谢。

    请您参考如下方法:

    服务层应该包含业务操作,并且应该与数据访问层(存储库)分离。服务层暴露了可能由多个 CRUD 操作组成的业务操作。这些 CRUD 操作由存储库执行。因此,例如,您可能有一项业务操作,将一些金额从一个帐户转移到另一个帐户,为了执行此业务操作,您首先需要确保发件人帐户有足够的准备金,从发件人帐户借记并贷记收款人帐户。服务操作还可以表示 SQL 事务的边界,这意味着在业务操作中执行的所有基本 CRUD 操作都应该在一个事务中,并且它们要么全部成功,要么在发生错误时回滚。

    为了将服务层与底层数据访问层分离,您可以使用接口(interface):

    public class BankService 
    { 
        private readonly IAccountsRepository _accountsRepository; 
        public OrdersService(IAccountsRepository accountsRepository) 
        { 
            _accountsRepository = accountsRepository; 
        } 
     
        public void Transfer(Account from, Account to, decimal amount) 
        { 
            _accountsRepository.Debit(from, amount); 
            _accountsRepository.Credit(to, amount); 
        } 
    } 
    


    评论关闭
    IT干货网

    微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!