惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

W
WeLiveSecurity
T
Tenable Blog
Project Zero
Project Zero
C
Cybersecurity and Infrastructure Security Agency CISA
T
The Exploit Database - CXSecurity.com
P
Palo Alto Networks Blog
S
Schneier on Security
Scott Helme
Scott Helme
S
Securelist
Know Your Adversary
Know Your Adversary
Vercel News
Vercel News
IT之家
IT之家
V
V2EX
F
Fortinet All Blogs
Simon Willison's Weblog
Simon Willison's Weblog
K
Kaspersky official blog
博客园_首页
T
Tailwind CSS Blog
The GitHub Blog
The GitHub Blog
Spread Privacy
Spread Privacy
Microsoft Security Blog
Microsoft Security Blog
Cisco Talos Blog
Cisco Talos Blog
The Register - Security
The Register - Security
有赞技术团队
有赞技术团队
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Cyberwarzone
Cyberwarzone
Google DeepMind News
Google DeepMind News
The Hacker News
The Hacker News
L
LINUX DO - 热门话题
Hugging Face - Blog
Hugging Face - Blog
博客园 - 三生石上(FineUI控件)
A
Arctic Wolf
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
C
CXSECURITY Database RSS Feed - CXSecurity.com
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
T
Threat Research - Cisco Blogs
P
Proofpoint News Feed
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
P
Privacy & Cybersecurity Law Blog
D
Darknet – Hacking Tools, Hacker News & Cyber Security
C
CERT Recently Published Vulnerability Notes
S
SegmentFault 最新的问题
AWS News Blog
AWS News Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
罗磊的独立博客
Apple Machine Learning Research
Apple Machine Learning Research
P
Proofpoint News Feed
The Cloudflare Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
V
Vulnerabilities – Threatpost

博客园 - 疾风

Internet Explorer允许的URL最大长度为2083个字符(Maximum URL length is 2,083 characters in Internet Explorer) Eval和Bind 古筝和古琴有什么区别? 认识CSS中absolute与relative BAT详细手册 iframe的使用 面向对象问答 用户点击Log In按钮后发生了什么?(续篇1) 用户点击Log In按钮后发生了什么? 微软的在线RSS阅读器 2003年至2006年项目总结 经常会有一些Gmail的邀请函 Visual Studio 2005 RTM的奇怪问题 在.Net代码中验证XML文档 2006年的一些目标 创建强类型的程序集 在.net中使用强类型来读取配置信息 自己做了一个单元测试的小工具---EasyTest.net How to gets the path for the executable file?
领域逻辑的实现分类
疾风 · 2006-07-23 · via 博客园 - 疾风

依据Martin Fowler的《企业应用架构模式》的说法,一般有三种方式实现领域逻辑:事务脚本、领域模型和表模块。

事务脚本

所谓事务脚本,其实就是让每个过程对应用户可能的一个动作。所以,我们可以将这一模型想象成一个动作或是业务的处理脚本。

事务脚本有以下的优点:

1、  它是一个简单的过程模型;

2、  事务的边界显而易见:一个事务总是始于其脚本的打开,而终止于其脚本的关闭;

3、  它能与基于数据入口或者表数据入口的简单数据源层协作得很好。

当然,它的缺点也是显而易见的:随着领域逻辑变得比较复杂,事务脚本的模式会使得程序变成由许多处理过程组成的极度杂乱的网。

领域模型

       
    领域模型使用面向对象的方法来抽象和建立业务规则。与业务脚本相比,领域模型更适合处理复杂和易于变化的领域逻辑。也是因为使用面向对象方法的缘故,领域模型对关系数据库的存取也更为麻烦。

表模块表模块是事务脚本和领域模型的一个中间地带,它围绕着“表”来组织领域逻辑,所以比业务脚本更容易发现和移除荣誉代码;另一方面,表模块也无法使用领域模型中用于组织细粒度逻辑结构的技术,例如继承、策略和其它面向对象的设计模式。

       表模块最大的优点在于其与软件架构中已有部分的衔接,比如记录集一起工作。

    对于使用Visual Studio/.NetDelphi的开发者来说,因为提供了非常强劲的数据集相关基础设施,所以在开发相对简单的数据密集型系统(如MIS)是使用表模块来实现领域逻辑或许是不错的选择。