加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

delphi – 当UI组件具有内置功能时,如何将应用程序逻辑与UI分开

发布时间:2020-12-15 04:29:30 所属栏目:大数据 来源:网络整理
导读:我知道保持用户界面代码与域代码分离很重要 – 应用程序更易于理解,维护,更改和(有时)隔离错误.但这是我的心理障碍 Delphi自带的组件具有我想要的方法,例如,一个RichText Memo组件可以让我使用富文本.其他组件,如TMS的字符串网格不仅可以做我想要的,但是我付
我知道保持用户界面代码与域代码分离很重要 – 应用程序更易于理解,维护,更改和(有时)隔离错误.但这是我的心理障碍

Delphi自带的组件具有我想要的方法,例如,一个RichText Memo组件可以让我使用富文本.其他组件,如TMS的字符串网格不仅可以做我想要的,但是我付出了额外的功能.这些功能将R放在RAD中.

写自己的课程来做别人已经为我做的事情似乎是不合逻辑的.它正在重塑轮胎(曾试图直接使用富文本? :-)]但是,如果我使用这样的组件内置的功能,那么我最终会有很多混合的UI和域代码 – 我将有一个表单,我的代码大部分内置到其事件处理程序中.

你如何处理这个问题? …或者,如果我想继续使用别人已经为我写的代码,你会如何建议我处理这个问题?

解决方法

首先,请记住,“处理富文本”不是你的应用程序应该做的.您的应用程序应该允许用户执行某个任务,并且用于处理该任务的代码是您的域逻辑.如果您的程序需要完成的任务的一部分涉及使用富文本,则可以将其部分委托给富文本组件.正如您所提到的那样,复杂性来自于这些库和域逻辑之间的接口.

Delphi域逻辑和Delphi UI控件之间的交互方式主要是通过事件处理程序.但这并不意味着您需要将域逻辑放在事件处理程序本身中.相反,请尝试编写单元,其中包含您需要完成的特定于领域的任务的代码,并使事件处理程序调用这些单元.

换句话说,不要写课程来重塑轮子,并且做别人已经为你做的事情.你是对的,这是不合逻辑的.但是编写您使用的控件和库的应用程序特定的部分没有作为自己单独的单独的类提供,并通过事件处理程序和表单上的公共方法或属性来连接它们,并且最终会有相当的分心关切.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读