C#依赖注入和IOC容器的简单介绍

简介:
依赖注入和IoC乍一看可能相当复杂,但它们非常容易学习和理解。
在本文中,我们将通过在C#中重构一个非常简单的代码示例来解释依赖注入和IoC容器。

要求:
构建一个允许用户查看可用产品并按名称搜索产品的应用程序。
第一次尝试:
我们将从创建分层架构开始。使用分层架构有多个好处,但我们不会在本文中列出它们,因为我们关注的是依赖注入。
在这里插入图片描述

下面是应用程序的类图:
在这里插入图片描述
首先,我们将从创建一个Product类开始:

public class Product
{
   
  public Guid Id {
    get; set; }
  public string Name {
    get; set; }
  public string Description {
    get; set; }
}

然后,我们将创建数据访问层:

public class ProductDAL
{
   
  private readonly List<Product> _products;
 
  public ProductDAL()
  {
   
    _products = new List<Product>
    {
   
      new Product {
    Id = Guid.NewGuid(), Name= "iPhone 9", 
             Description = "iPhone 9 mobile phone" },
      new Product {
    Id = Guid.NewGuid(), Name= "iPhone X", 
             Description = "iPhone X mobile phone" }
    };
  }
 
  public IEnumerable<Product> GetProducts()
  {
   
    return _products;
  }
 
  public IEnumerable<Product> GetProducts(string name)
  {
   
    return _products
      .Where(p => p.Name.Contains(name))
      .ToList();
  }
}

然后,我们将创建业务层:

public class ProductBL
{
   
  private readonly ProductDAL _productDAL;
 
  public ProductBL()
  {
   
    _productDAL = new ProductDAL();
  }
 
  public IEnumerable<Product> GetProducts()
  {
   
    return _productDAL.GetProducts();
  }
 
  public IEnumerable<Product> GetProducts(string name)
  {
   
    return _productDAL.GetProducts(name);
  }
}

最后,我们将创建UI:

class Program
{
   
  static void Main(string[] args)
  {
   
    ProductBL productBL = new ProductBL();
 
    var products = productBL.GetProducts
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

0仰望星空007

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值