Delphi中DLL封装业务逻辑的实现
三层结构是开发C/S或B/S系统经常采用的策略,这种分层方式将系统分为用户服务、业务服务和数据服务三部分,能够解决客户端与服务器结构维护成本问题、改善客户端与服务器结构延展性问题;解决应用逻辑重复使用的问题;还能够满足整合不同系统结构的需要与及时应用新技术的需要。但在实际应用中,如何更好的利用这种分层方式来解决实际项目中的问题,一直是程序设计者不断探索的方向。本文主要就DLL封装业务逻辑的实现方法进行探讨。 MIS系统经常采用C/S结构来处理,在实际使用中用户界面与业务处理并没有进行详细的区分,这样编写出来的程序层次复杂,不仅阅读不够清晰,对于以后进行修改和维护也会遇到很大的困难,同时降低了代码的可复用性与可扩展性,所以在编写程序时需要将界面与业务逻辑进行分离,以此来降低数据的传输量、减少对客户端影响以及增强系统的安全性和健壮性,提高程序的可复用性和可扩展性。在用户层与业务层分离时,应尽量使客户端更“瘦”,将复杂的算法和业务逻辑规则放在中间层来处理,而数据层只用来保证提供给中间层所有的数据和操作能够正常进行。 例如:在进销存系统中对于货品的销售过程中供应商提供了对某种货品的保价处理,那么在销售时就不能对保价货品随意出售,需要对商品进行保价检查,如果是保价商品,则需经过特别处理或者不予销售,而对非保价商品就可以直接进行销售。下面是一段处理代码: 分析这两段代码的不同点,从中可以看出,后面这段代码使界面处理与业务处理分开来进行,从而使代码结构更加清晰、简洁;更重要的是,即使对界面和业务逻辑进行维护和修改,只需修改各自的处理代码就可以了,增加了独立性,同时也增加了程序的可复用性和可扩展性。 动态链接库给应用程序提供了一种调用不在其执行代码中的函数的技术。而在这里为了给更好的复用业务处理代码和全局变量,Dll用来对业务逻辑进行封装,使业务逻辑部分和界面部分分别形成Dll和Exe文件,从而使程序的执行更加高效。 为了实现对业务逻辑的封装,首先要定义业务类,然后对其进行继承,实现具体的业务代码。对于界面部分与业务部分的通信可以采用定义接口的形式来完成,在Delphi中我们可以使用Interface或抽象类来具体实现,但在实现中要保持接口的稳定,不能随意对其进行更改。如果想以后对其进行扩展或复用,还可以通过预留接口的方式来解决未来功能增长的需要。具体实现以下面这个例子来说明。 通过对用户服务与业务服务的分离,实现了程序的可复用性、可扩展性,提高了系统的健壮性,解决了应用逻辑重复使用的问题,同时也为系统的后期维护提供了方便;尤其对B/S类系统和企业级系统来说所带了的好处是不言而喻的。使用DLL对业务逻辑类进行封装会更好的利用业务类与公共资源,摒弃全局变量,提高了程序的效率。 |
Delphi中DLL封装业务逻辑的实现相关推荐
- MySQL:尽量不要用存储过程封装业务逻辑
本篇文章讨论并不是:不要使用存储过程,因为有些事情还是要存储过程来完成,不可能不用.而是关于:"业务逻辑是不是要封装在存储过程中实现,这样子php.java等就是调用存储过程". ...
- 减少存储过程封装业务逻辑-web开发与传统软件开发的思维模式不同
转:减少存储过程封装业务逻辑-web开发与传统软件开发的思维模式不同 本篇文章讨论并不是:不要使用存储过程,因为有些事情还是要存储过程来完成,不可能不用.而是关于:"业务逻辑是不是要封装在存 ...
- java_web:使用javabean实现登录操作(封装业务逻辑的javabean,且使用封装数据的实体类传参)
javabean的使用 1.将jsp中要用到的登录操作的代转移到java类中 2.javabean的作用: a.减轻jsp的复杂度 b.提高代码复用 3.javabean的定义 a.public修饰的 ...
- java_web:使用javabean实现登录操作(封装业务逻辑的javabean)
javabean的使用 1.将jsp中要用到的登录操作的代转移到java类中 2.javabean的作用: a.减轻jsp的复杂度 b.提高代码复用 3.javabean的定义 a.public修饰的 ...
- Delphi中DLL初始化和退出处理
Delphi中DLL初始化和退出处理 choysan 2010-01-08 8:56:43 <1>利用Unit的Initalization与Finalization这两个小节 可以在Uni ...
- 超级账本Fabric学习(二)Fabric1.0.0网络搭建(中)无业务逻辑处理的Fabric网络
整合三个有依赖关系的yaml文件 1:docker-compose-cli.yaml文件源码解析 2:docker-compose-base.yaml文件源码分析 3:peer-base.yaml文件 ...
- Delphi中DLL或Package窗体载入与显示
Delphi应用程序架构中有一种模式,采用DLL或Package存储业务窗体,当需要时从其中载入到主程序中,这时候需要对DLL或Package中窗体进行处理,步骤如下: 1.定义窗体基类 typeTf ...
- 关于Delphi中DLL,BPL等无法调试的问题
今天,整插件框架的时候,调试的时候,整来整去,发现,无法进入插件DLL进行调试,诧异的蛋疼,相同的框架,以前写的代码,调试一切正常,随意怎么调试都可以,今天换一个项目上来,调试居然无法进入到DLL模块 ...
- 设计模式之 抽象工厂 封装业务逻辑层和Dao层
一般情况下软件应该尽量遵循以下的设计原则: 开闭原则(OCP) 对扩展开放,对修改关闭 里氏替换原则(LSP) 任何类出现的地方,子类一定可以出现(is-a) 依赖倒转原则(DIP) 尽量依赖抽象,不 ...
最新文章
- (C++)1046 Shortest Distance
- Spring AOP 简介以及简单用法
- 更换Spring底层日志框架
- GFS - The Google File System
- java dao模式_Java DAO 模式
- javascript 作用_JavaScript承诺如何从内到外真正发挥作用
- 获取本地ip地址适用于windows和Linux环境
- 技术面试的《飞鸽传书2007绿色版下载》
- idea关闭coverage
- 前端编码规范之JavaScript
- 通俗易懂的理解 Redux(知乎)
- 说好的「机器人出租车」和「自动驾驶汽车」,到底在哪?
原创 我爱至尊宝 科技行者 昨天...
- GB28181协议实现简介
- 将mysql数据库批量导出为word三线表格形式
- iPad 上播放 2160p (4K) mkv 视频的方法
- 如何用ps裁剪规定像素的图片
- 什么是大小端,为什么会出现大小端,如何检测是大端还是小端
- 图像处理总结2、图像增强
- axios-前后端数据交互流程
- websocket 协议ping pong text