实战:两天构建三层架构工程报价系统

0 下载量 185 浏览量 更新于2024-08-29 收藏 506KB PDF 举报
"本文介绍了一个使用三层架构在两天内完成的小型工程报价系统,包括项目的搭建、界面设计、代码分层设计与实现。系统主要实现了基础的增删改查功能,涉及模型层、数据访问层的详细设计。" 在开发这个小型工程报价系统时,作者采用了经典的三层架构,这种架构有助于保持代码的清晰性和可维护性。三层架构通常包括表现层(UI)、业务逻辑层(BLL)和数据访问层(DAL)。 1. 表现层(UI): 这是用户与系统交互的界面,负责接收用户输入并展示结果。在这个案例中,作者可能使用了WinForms或WebForms等技术创建用户界面,并实现了基本的增删改查操作按钮和数据显示控件。 2. 模型层(Model): 模型层是业务对象的定义,包含了业务实体的属性和行为。由于表设计中存在主外键关系,如产品(Product)和项目(Project)之间的关联,作者在模型中为每个对象添加了对关联对象的引用,如ProjectItem对象包含Product_product和Project_project属性,以便在处理数据时能直接获取到外键关联的完整信息。 ```csharp public Project_Project { get { return _project; } set { _project = value; } } public Product_Product { get { return _product; } set { _product = value; } } ``` 3. 数据访问层(DAL): 这一层负责与数据库进行交互,执行SQL语句,获取和更新数据。作者选择不使用DataSet在BLL层传递数据,而是将数据封装成Model对象的IEnumerable集合,这样可以避免在业务层处理过多的数据访问细节。例如,通过`ToModelsByFK`方法将SqlDataReader读取的结果转换成对象列表: ```csharp protected IEnumerable<T> ToModelsByFK(SqlDataReader reader) { var list = new List<T>(); while (reader.Read()) { list.Add(ToModelByFK(reader)); } return list; } ``` 4. 业务逻辑层(BLL): BLL层处理业务规则和流程控制,调用DAL进行数据操作。在这个系统中,可能会有如`GetProjectByCondition`这样的方法用于根据条件查询项目,`UpdatePassChecked`方法用于更新已检查的项目状态,以及`Add`方法用于新增项目记录。这些方法接收和返回的都是封装好的Model对象,而不是原始的数据库记录。 5. 分层设计的好处: 通过三层架构,代码职责分明,降低了模块间的耦合度。UI层只需要关注如何展示和接收用户操作,BLL层处理业务逻辑,而DAL层则专注于数据的存取。这样使得系统更易于维护和扩展,同时也便于团队协作。 这个小型工程报价系统展示了如何在短时间内运用三层架构快速开发一个具备基础功能的应用程序,同时体现了良好的编程习惯和代码组织结构。