项目中的通用查询参数类,它体现了项目架构的大局观

简介:
     /// <summary>
    /// 自定义谓词
    /// </summary>
    public class VPredication : IEnumerable<KeyValuePair<string, object>>
    {
        Dictionary<string, object> dicv = null;
        SpacePredication spacePredication = null;
        /// <summary>
        /// 区间谓词
        /// </summary>
        public SpacePredication SpacePredication { get { return this.spacePredication; } }
 
        /// <summary>
        /// 自定义区间 构造函数
        /// </summary>
        public VPredication()
        {
            spacePredication = new SpacePredication();
            dicv = new Dictionary<string, object>();
        }
 
        /// <summary>
        /// 验证键是否存在值
        /// </summary>
        /// <param name="index">键</param>
        /// <returns>bool</returns>
        public bool ContainsKey(string index)
        {
            return this.dicv.ContainsKey(index);
        }
 
        /// <summary>
        /// 索引器
        /// </summary>
        /// <param name="index">索引值</param>
        /// <returns>值</returns>
        public object this[string index]
        {
            get
            {
                if (dicv.ContainsKey(index))
                    return dicv[index];
                else
                    return null;
            }
        }
 
 
        /// <summary>
        /// 增加新项
        /// </summary>
        /// <param name="key">列枚举[只能接受非FLAG得单个枚举]</param>
        /// <param name="extremumPair"></param>
        public void AddItem(string key, object value)
        {
            this.dicv.Add(key, value);
        }
        /// <summary>
        /// 移除制定 列枚举 的项
        /// </summary>
        /// <param name="key">列枚举[只能接受非FLAG得单个枚举]</param>
        public void RemoveItem(string key)
        {
            this.dicv.Remove(key);
        }
 
        #region IEnumerable<KeyValuePair<string,object>> 成员
 
        public IEnumerator<KeyValuePair<string, object>> GetEnumerator()
        {
            return this.dicv.GetEnumerator();
        }
 
        #endregion
 
        #region IEnumerable 成员
 
        System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
        {
            return this.dicv.GetEnumerator();
        }
 
        #endregion
    }
    /// <summary>
    /// 区间谓词
    /// </summary>
    public class SpacePredication : IEnumerable<KeyValuePair<string, ExtremumPair>>
    {
        Dictionary<string, ExtremumPair> dic = null;
        /// <summary>
        /// 区间谓词 构造函数
        /// </summary>
        public SpacePredication()
        {
            dic = new Dictionary<string, ExtremumPair>();
 
        }
 
        /// <summary>
        /// 索引器
        /// </summary>
        /// <param name="index">索引值</param>
        /// <returns>区间极值值对</returns>
        public ExtremumPair this[string index]
        {
            get { return dic[index]; }
        }
 
        /// <summary>
        /// 验证键是否存在值
        /// </summary>
        /// <param name="index">键</param>
        /// <returns>bool</returns>
        public bool ContainsKey(string index)
        {
            return this.dic.ContainsKey(index);
        }
 
 
 
        /// <summary>
        /// 增加新项
        /// </summary>
        /// <param name="_enum">列枚举[只能接受非FLAG得单个枚举]</param>
        /// <param name="extremumPair"></param>
        public void AddItem(string key, ExtremumPair extremumPair)
        {
            this.dic.Add(key, extremumPair);
        }
        /// <summary>
        /// 移除制定 列枚举 的项
        /// </summary>
        /// <param name="key">列枚举[只能接受非FLAG得单个枚举]</param>
        public void RemoveItem(string key)
        {
            this.dic.Remove(key);
        }
 
        #region IEnumerable<KeyValuePair<string,ExtremumPair>> 成员
 
        public IEnumerator<KeyValuePair<string, ExtremumPair>> GetEnumerator()
        {
            return this.dic.GetEnumerator();
        }
 
        #endregion
 
        #region IEnumerable 成员
 
        System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
        {
            return this.dic.GetEnumerator();
        }
 
        #endregion
    }
 
    /// <summary>
    /// 区间极值值对
    /// </summary>
    public class ExtremumPair
    {
        object leftValue, rightValue;
        /// <summary>
        /// 左极值
        /// </summary>
        public object LeftValue { get { return leftValue; } }
        /// <summary>
        /// 右极值
        /// </summary>
        public object RightValue { get { return rightValue; } }
        /// <summary>
        /// 区间极值值对 构造函数
        /// </summary>
        /// <param name="leftValue">左极值</param>
        /// <param name="rightValue">右极值</param>
        public ExtremumPair(object leftValue, object rightValue)
        {
            this.leftValue = leftValue;
            this.rightValue = rightValue;
        }
    }
 
    /// <summary>
    /// 通用分页参数 
    /// </summary>
    public class PagingParam
    {
        int pageSize = 10;
        int pageIndex = 1;
        int pageTotal = -1;
        /// <summary>
        /// 页面大小
        /// </summary>
        public int PageSize { get { return pageSize; } }
        /// <summary>
        /// 页码
        /// </summary>
        public int PageIndex { get { return pageIndex; } }
 
        public int PageTotal { get { return pageTotal; } }
        /// 构造函数
        /// </summary>
        public PagingParam()
        {
        }
        /// <summary>
        /// 通用分页参数结构 构造函数
        /// </summary>
        /// <param name="pageIndex">页码</param>
        /// <param name="pageSize">页面大小</param>
        public PagingParam(int pageIndex, int pageSize)
        {
            this.pageIndex = pageIndex;
            this.pageSize = pageSize;
            this.pageTotal = PageSize;
        }
 
        public PagingParam(int pageIndex, int pageSize, int pageTotal)
        {
            this.pageIndex = pageIndex;
            this.pageSize = pageSize;
            this.pageTotal = pageTotal;
        }
 

}

本文转自博客园张占岭(仓储大叔)的博客,原文链接:项目中的通用查询参数类,它体现了项目架构的大局观,如需转载请自行联系原博主。

目录
相关文章
|
7天前
|
负载均衡 数据库 开发工具
|
7天前
|
Java 数据库 Maven
谷粒商城笔记+踩坑(1)——架构、项目环境搭建、代码生成器
项目介绍、项目环境搭建、docker配置mysql,redis,jdk,maven、人人开源、快速开发、安装nodejs、逆向工程搭建,人人开源代码生成器
谷粒商城笔记+踩坑(1)——架构、项目环境搭建、代码生成器
|
24天前
|
设计模式 存储 前端开发
揭秘.NET架构设计模式:如何构建坚不可摧的系统?掌握这些,让你的项目无懈可击!
【8月更文挑战第28天】在软件开发中,设计模式是解决常见问题的经典方案,助力构建可维护、可扩展的系统。本文探讨了.NET中三种关键架构设计模式:MVC、依赖注入与仓储模式,并提供了示例代码。MVC通过模型、视图和控制器分离关注点;依赖注入则通过外部管理组件依赖提升复用性和可测性;仓储模式则统一数据访问接口,分离数据逻辑与业务逻辑。掌握这些模式有助于开发者优化系统架构,提升软件质量。
34 5
|
26天前
|
JSON API 数据安全/隐私保护
Django 后端架构开发:JWT 项目实践与Drf版本控制
Django 后端架构开发:JWT 项目实践与Drf版本控制
32 0
|
30天前
|
机器学习/深度学习 Cloud Native Serverless
Serverless 架构问题之CNCF基金会托管的CloudEvents项目内容如何解决
Serverless 架构问题之CNCF基金会托管的CloudEvents项目内容如何解决
27 0
|
30天前
|
SQL 分布式计算 大数据
Android项目架构设计问题之平衡技术选型与业务需求之间的关系如何解决
Android项目架构设计问题之平衡技术选型与业务需求之间的关系如何解决
28 0
|
30天前
|
开发工具 Android开发
Android项目架构设计问题之SDK内部减少每次回调时的冗余判断逻辑如何解决
Android项目架构设计问题之SDK内部减少每次回调时的冗余判断逻辑如何解决
17 0
|
30天前
|
开发工具 Android开发
Android项目架构设计问题之外部客户方便地设置回调如何解决
Android项目架构设计问题之外部客户方便地设置回调如何解决
17 0
|
30天前
|
Java API 开发工具
Android项目架构设计问题之为SDK添加新的回调支持如何解决
Android项目架构设计问题之为SDK添加新的回调支持如何解决
14 0
|
30天前
|
开发工具 Android开发
Android项目架构设计问题之组件A通知组件B某个事件的发生如何解决
Android项目架构设计问题之组件A通知组件B某个事件的发生如何解决
28 0

热门文章

最新文章