一个非常不错的业务规则管理器

原创 2004年09月10日 15:53:00

那天在MSDN看到一片比较cool的文章A Simple Business Rules Manager。这篇文章中演示了如何通过委托建立一个简单的业务规则引擎,使得能够集中校验应用程序中的业务规则。

看了之后感觉非常实用,不过这个组件实用VB.NET 写的,所以我尝试着把它用C#重写了一遍。因为我不会VB.NET,在重写的过程中还是遇到了很多问题,呵呵:)要是重写的有什么问题,希望大家能够 Mail给我:liy@lonwin.com.cn

下面我简单的说一下这个组件的思路,具体的请参考源代码和上面提及的那片英文文章:

在很多系统中业务规则总是到处被复制,也就是相同的业务逻辑可能到处都是。比如一个典型的应用程序,有两个不同的Form,都需要和同一个Customer Data交互。对于Customer Data得业务逻辑在任何地方都是相同的,但是我们需要在两个不同的Form中使用这些数据,所以有时候我们需要复制义务逻辑。如下图所示:

Figure 1. Duplicated business logic

显然,这样的应用程序时很难维护的。当然我们能够把业务逻辑封装到一个对象当中,然后在不同的Form中使用相同的对象。

Figure 2. Business logic centralized in an object

把业务逻辑封装到一个对象中已经是一大进步了,不过这并不是最完美的。因为我们在这个封装的泪中依然可以复制业务逻辑。比如:

Figure 3. Business logic duplicated within an object

我们需要一个简单的方法来集中处理这些逻辑,不管是用业务对象还是ADO.NET对象。

Figure 4. Business logic centralized in a rules manager

这样就能集中处理业务规则,而不用担心到处复制这些讨厌的业务规则了:)

c#版代码:http://www.dev-club.com/upload-files/241/2415179.RAR

业务规则层设计说明

一.具体介绍 目的:降低业务逻辑层耦合和进行动态加载提高系统的可扩展性 使用工具: spring.net框架通过IOC注入机制实现 二.具体机制 面向接口编程,所有的服务都需要...
  • ruijc
  • ruijc
  • 2013年04月08日 15:50
  • 1718

一个不错的shell 脚本教程 入门级

转自:http://www.jb51.net/article/28514.htm一个很不错的bash脚本编写教程,至少没接触过BASH的也能看懂建立一个脚本   Linux中有好多中不同的shell,...
  • shanglianlm
  • shanglianlm
  • 2015年06月09日 11:50
  • 641

一个非常不错的串口程序

//PC读MCU指令结构:(中断方式,ASCII码表示)  //帧:   帧头标志|帧类型|器件地址|启始地址|长度n|效验和|帧尾标志  //值:    ’n’ ’y’| ’r’  |  0x0...
  • xjbclz
  • xjbclz
  • 2016年06月29日 22:49
  • 1703

业务规则引擎—规则池功能学习

在规则开发过程中,往往会遇到某个规则会反复被使用的情况。因此,我们总是希望能通过某种方式调用这些规则,也就是所能实现规则复用。我们知道在“决策树”中,不仅可以实现规则的复用,而且还可设置复用规则执行的...
  • wangmengqz
  • wangmengqz
  • 2013年09月17日 13:48
  • 3588

一个非常不错jquery确认删除插件

一直头疼不能找一个非常简单且实用的确认删除插件。但是,还是让我找到了。 效果图   上代码   /* * jQuery Plugin : jConfirmAction * ...
  • Skylvzhoulihe
  • Skylvzhoulihe
  • 2013年06月27日 00:54
  • 1028

写的非常不错的一个windows下socket编程

本文简单介绍了当前Windows支持的各种Socket I/O模型,如果你发现其中存在什么错误请务必赐教。 一:select模型 二:WSAAsyncSelect模型 三:WSAEventS...
  • fuyuehua22
  • fuyuehua22
  • 2014年10月23日 19:41
  • 354

一个非常不错的新闻客户端应用源码

一个非常不错的新闻客户端应用源码 一个非常不错的新闻客户端应用源码,只可惜是英文版的,不过大家只要翻译过来中文就非常完美了啊,这个也是非常简单的,一个效果超炫的iPhone新闻客户端源码,一...
  • chenli02
  • chenli02
  • 2014年05月23日 13:16
  • 621

BTrace是一个非常不错的java诊断工具

 http://blog.csdn.net/changewang/article/details/12057139 BTrace是一个非常不错的java诊断工具。 BTrace 中的...
  • chenbo19867758
  • chenbo19867758
  • 2018年01月13日 17:35
  • 11

一个效果非常不错的JAVA数据库连接池

import java.sql.Connection; import java.sql.DatabaseMetaData; import java.sql.Driver; import java.sq...
  • baokx
  • baokx
  • 2013年08月14日 10:32
  • 472

一个效果非常不错的JAVA数据库连接池

虽然现在用APACHE COMMONS DBCP可以非常方便的建立数据库连接池, 但是像这篇文章把数据库连接池的内部原理写的这么透彻,注视这么完整, 真是非常难得,让开发人员可以更深层次的理解数据库连...
  • mj19910923
  • mj19910923
  • 2013年04月25日 10:17
  • 379
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:一个非常不错的业务规则管理器
举报原因:
原因补充:

(最多只允许输入30个字)