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

简介:
     /// <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;
        }
 

}

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

目录
相关文章
|
1月前
|
前端开发 JavaScript 测试技术
android做中大型项目完美的架构模式是什么?是MVVM吗?如果不是,是什么?
android做中大型项目完美的架构模式是什么?是MVVM吗?如果不是,是什么?
102 2
|
19天前
|
前端开发 JavaScript 测试技术
android做中大型项目完美的架构模式是什么?是MVVM吗?如果不是,是什么?
在 Android 开发中,选择合适的架构模式对于构建中大型项目至关重要。常见的架构模式有 MVVM、MVP、MVI、Clean Architecture 和 Flux/Redux。每种模式都有其优缺点和适用场景,例如 MVVM 适用于复杂 UI 状态和频繁更新,而 Clean Architecture 适合大型项目和多平台开发。选择合适的架构应考虑项目需求、团队熟悉度和可维护性。
46 6
|
19天前
|
存储 前端开发 数据可视化
在实际项目中,如何选择使用 Flux 架构或传统的 MVC 架构
在实际项目中选择使用Flux架构或传统MVC架构时,需考虑项目复杂度、团队熟悉度和性能需求。Flux适合大型、高并发应用,MVC则适用于中小型、逻辑简单的项目。
|
28天前
|
前端开发 JavaScript 测试技术
Android适合构建中大型项目的架构模式全面对比
Android适合构建中大型项目的架构模式全面对比
43 2
|
19天前
|
前端开发 Java 测试技术
android MVP契约类架构模式与MVVM架构模式,哪种架构模式更好?
android MVP契约类架构模式与MVVM架构模式,哪种架构模式更好?
29 0
|
20天前
|
机器学习/深度学习 人工智能 自然语言处理
Tokenformer:基于参数标记化的高效可扩展Transformer架构
本文是对发表于arXiv的论文 "TOKENFORMER: RETHINKING TRANSFORMER SCALING WITH TOKENIZED MODEL PARAMETERS" 的深入解读与扩展分析。主要探讨了一种革新性的Transformer架构设计方案,该方案通过参数标记化实现了模型的高效扩展和计算优化。
82 0
|
1月前
|
存储 分布式计算 Hadoop
Hadoop-33 HBase 初识简介 项目简介 整体架构 HMaster HRegionServer Region
Hadoop-33 HBase 初识简介 项目简介 整体架构 HMaster HRegionServer Region
53 2
|
1月前
|
前端开发 Java 测试技术
android MVP契约类架构模式与MVVM架构模式,哪种架构模式更好?
android MVP契约类架构模式与MVVM架构模式,哪种架构模式更好?
22 2
|
2月前
|
负载均衡 数据库 开发工具
|
2月前
|
Java 数据库 Maven
谷粒商城笔记+踩坑(1)——架构、项目环境搭建、代码生成器
项目介绍、项目环境搭建、docker配置mysql,redis,jdk,maven、人人开源、快速开发、安装nodejs、逆向工程搭建,人人开源代码生成器
谷粒商城笔记+踩坑(1)——架构、项目环境搭建、代码生成器