3层框架演练1——不使用接口
环境:VS2017, .NET Framework 4.6.1, Win 10 Pro
创建表示层及解决方案:
创建类库项目:DAL层:
创建BLL业务逻辑层:
再创建实体层:(这一层也可以放再DAL建个文件夹)
删掉BLL,DAL,Entity层类库项目自带的Class1.cs
在Entity层创建一个POCO实体类Product
public class Product { public string Id { get; set; } public string Name { get; set; } public override string ToString() { return $"{nameof(Id)}:{Id}, {nameof(Name)}:{Name}"; } }
DAL引用Entity层
在数据访问层DAL创建类ProductDao(DAO=数据访问对象)
public class ProductDao { //构造数据库数据 private readonly IList<Product> _productList = new List<Product> { new Product {Id = "1", Name = "苹果"}, new Product {Id = "2", Name = "香蕉"} }; //实际项目从数据库获取数据,这里为了简单,直接构造几条数据 public IEnumerable<Product> GetProducts() { return _productList; } }
业务逻辑层BLL引用DAL和Entity层
在逻辑层创建ProductBll类
public class ProductBll { public IEnumerable<Product> GetProducts() { var productDao = new ProductDao(); var products = productDao.GetProducts(); return products; } }
表现层应用BLL层和Entity实体层
在Program类添加调用逻辑层方法
class Program { static void Main(string[] args) { Console.WriteLine($"开始运行{nameof(Program)}"); var productBll = new ProductBll(); var products = productBll.GetProducts(); foreach (var product in products) { Console.WriteLine(product); } Console.WriteLine($"结束运行{nameof(Program)}"); } }
运行结果