当为业务逻辑层(BLL,Service)提供基类之后,程序变得了更加面向对象了

简介:

     /// <summary> 
    /// 业务层抽象基类 
    /// </summary> 
    public abstract class ServiceBase 
    { 
        /// <summary> 
        /// 通用消息 
        /// </summary> 
        protected VMessage VMessage { get; set; } 
        /// <summary> 
        /// 数据层统一操作对象实例 
        /// 避免派生类直接new对象 
        /// </summary> 
        /// <typeparam name="TEntity"></typeparam> 
        /// <returns></returns> 
        protected IRepository<TEntity> LoadRepository<TEntity>() where TEntity : class,Entity.IEntity 
        { 
            return new Repository<TEntity>(); 
        }

    }

子类在完成一个业务功能时,就变成了这样:

public Entity.VMessage AddCommon_BasePropValue(Common_BasePropValue entity) 
        { 
            VMessage = new Entity.VMessage(); 
            try 
            { 
                if (Base.LoadRepository<Common_BasePropValue>().GetModel().Where(i => i.Name == entity.Name).Count() > 0) 
                { 
                    VMessage.IsComplete = false; 
                    VMessage.AddItem("名称重复"); 
                } 
                else 
                { 
                    base.LoadRepository<Common_BasePropValue>().Insert(entity); 
                    VMessage.IsComplete = true; 
                } 
            } 
            catch (Exception ex) 
            { 
                VMessage.AddItem(ex.Message); 
             } 
            return VMessage; 
        }

这样不需要在具体业务类中生成新对象,直接使用基类的方法就可以了,结构清晰,操作统一性好。

本文转自博客园张占岭(仓储大叔)的博客,原文链接:当为业务逻辑层(BLL,Service)提供基类之后,程序变得了更加面向对象了,如需转载请自行联系原博主。

目录
相关文章
不使用第三方变量的情况下交换两个数值
不使用第三方变量的情况下交换两个数值
113 1
|
数据可视化 Python
生信教程:使用拓扑加权探索基因组进化(3)
生信教程:使用拓扑加权探索基因组进化(3)
|
SQL 关系型数据库 MySQL
MySQL数据库——SQL(3)-DQL(基本查询、条件查询、聚合函数、分组查询、排序查询、分页查询、案例练习)
MySQL数据库——SQL(3)-DQL(基本查询、条件查询、聚合函数、分组查询、排序查询、分页查询、案例练习)
276 0
|
前端开发 JavaScript
基于Vue3实现鼠标按下某个元素进行拖动,实时改变左侧或右侧元素的宽度,以及点击收起或展开的功能
本文介绍了如何在Vue3项目中实现一个鼠标拖动调整元素宽度的功能,并展示了点击按钮收起或展开侧边栏的效果,提供了完整的实现代码和操作演示。
1885 0
基于Vue3实现鼠标按下某个元素进行拖动,实时改变左侧或右侧元素的宽度,以及点击收起或展开的功能
|
Prometheus 监控 Cloud Native
使用Spring Boot和Prometheus进行监控
使用Spring Boot和Prometheus进行监控
|
Linux iOS开发 MacOS
实现虚拟人直播有那些开源软件
实现虚拟人直播有那些开源软件
541 1
|
关系型数据库 分布式数据库 数据库
PolarDB产品使用问题之外网连接的带宽上限是多少
PolarDB产品使用合集涵盖了从创建与管理、数据管理、性能优化与诊断、安全与合规到生态与集成、运维与支持等全方位的功能和服务,旨在帮助企业轻松构建高可用、高性能且易于管理的数据库环境,满足不同业务场景的需求。用户可以通过阿里云控制台、API、SDK等方式便捷地使用这些功能,实现数据库的高效运维与持续优化。
151 0
|
Prometheus Kubernetes 监控
Prometheus 服务发现和重新打标|学习笔记(二)
快速学习 Prometheus 服务发现和重新打标
455 0
Prometheus 服务发现和重新打标|学习笔记(二)
|
机器学习/深度学习 Ubuntu 开发工具
相机和livox激光雷达外参标定:ROS功能包---livox_camera_lidar_calibration 介绍
**什么是相机与激光雷达外参标定?** 就是相机坐标系和激光雷达坐标系的TF变化。位置x,y,z 欧拉角 roll,pitch,yaw,6个变量构成一个4*4的旋转变换矩阵 标定的就是这个4维的旋转矩阵。 标定的方法有: - 基于特征 - 基于运动观测 - 基于最大化互信息 - 基于深度学习 基于特征 的方法是根据对应特征点求解PnP问题,需要标定板来获取特征 基于运动观测可以看作手眼标定问题,精度决定于相机和雷达的运动估计 基于最大化互信息认为图像灰度于反射强度具有相关性 基于深度学习需要长时间的训练并且泛化能力不高
相机和livox激光雷达外参标定:ROS功能包---livox_camera_lidar_calibration 介绍
|
Ubuntu Shell Linux
Shell脚本的常用执行方式、bash 和 sh 的关系、子shell、Centos 默认的解析器是 bash、Linux 提供的 Shell 解析器、Shell 概述、Shell 脚本入门
Shell脚本的常用执行方式、bash 和 sh 的关系、子shell、Centos 默认的解析器是 bash、Linux 提供的 Shell 解析器、Shell 概述、Shell 脚本入门
Shell脚本的常用执行方式、bash 和 sh 的关系、子shell、Centos 默认的解析器是 bash、Linux 提供的 Shell 解析器、Shell 概述、Shell 脚本入门

热门文章

最新文章