模板方法模式实现组合查询

本文介绍了如何使用模板方法模式实现组合查询。首先解释了模板方法模式的基本概念,即定义算法骨架并延迟部分步骤到子类。接着提到了之前关于任意组合查询的讨论,强调将所有查询统一处理的思想。此外,还概述了三层架构(用户界面表示层、业务逻辑层和数据访问层)。文章的主要目的是探讨模板方法如何在实际的组合查询操作中发挥作用,并进行了具体的方法分析和实现描述,其中包含四个实方法和子类对于选择字段的实现。最后展示了UI层的调用方式。
摘要由CSDN通过智能技术生成

1.前提

 1.模板方法模式

定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。

 2.组合方法

之前写过一篇博客,讲述实现任意组合查询。中心思想:将所有的查询都看做一种情况来处理(http://blog.csdn.net/lypf19900912/article/details/8959245)

 3.三层架构

用户界面表示层(UL);业务逻辑层(BLL);数据访问层(DAL)


2.目的

利用模板方法来实现组合查询

3.分析

组合查询在机房收费系统中出现了很多次。他们的界面如图:


       实现组合查询的过程也很类似,他们对条件进行组合然后进行查询。细分一下他们实现的相同点和不同点
相同点:选择的条件 拼接成的字符串;不同点:字段的具体内容
       那么对于这个组合查询来说实现的步骤是不变的(选择条件然后拼接字符串),但是实现某些步骤的具体实现是不同的(字段的具体内容不同)。

4.实现

  在BLL层建立一个抽象类和他的子类。
抽象类中有一个虚方法:选择的字段(不同点)

四个实方法:选择的操作符,选择的内容,选择的组合关系,拼接字符串

Imports CooperateJF.Entity
Imports CooperateJF.Factory
Imports CooperateJF.IDAL


Namespace BLL
	''' <summary>
	''' 建立组合查询的抽象类
	''' </summary>
    Public MustInherit Class CombinCheckBLL

        ''' <summary>
        ''' 组合方法
        ''' 完成字段的拼接
        ''' </summary> 
        ''' <param name="enGroupOne">第一条组合
        ''' 传递三条字段信息</param>
        Public Function Combin(ByVal enGroupOne As GroupEnt
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值