基于抽象的分层结构
Author:Anders小明
(2008-1-8更新)
前言:现有已知的分层结构基本上是基于技术结构的,无论是SpringSide(早的还有AppFuse)还是DDD提出的分层结构,都是基于职责角色划分的。然而对于复杂的企业应用系统来说,仅仅以该纬度来划分,是无法完成逻辑的分解的。我们还需要基于抽象的分层纬度。
基于抽象的分层结构
众所周知:抽象是有排列的。进一步,在企业应用中,抽象的排列也是分层的;与此同时,抽象还是分模块的,定义良好的交互接口,保持抽象间交互的稳定是及其重要的。
抽象层次的划分是以业务概念划分为依据的,以保险系统为例,可以把抽象层次分为三层:保险其自身核心业务概念——核心抽象层,又受国家监管规则——国家抽象层,以及公司自身规则——公司抽象层。
如果说对于抽象的层次划分是纵向分类的话,那么模块划分就是横向分类。模块划分是较为常见的,不再举例。
对于抽象分层的,需要进一步的说明。如下为一个三层抽象的说明。白色为核心抽象层,水绿色为扩展抽象层,天蓝色为特定抽象层。
对于抽象的分层,是符合人的思维逻辑的一种思考问题的方式,由简单到复杂。注意到白色为代表的核心抽象其覆盖面积是最小的,其边界也是最小。然后是扩展抽象,再然后是特定抽象。对抽象分层的第二个好处是:可以迭代地螺旋前进。
先看看核心抽象层:核心抽象层必须足够精巧而且稳定,因为他们是系统的最基本和最简单的结构!同时核心抽象层是可以运行的!他们的抽象和默认实现在全系统的地位——类似于数学系统的中的0和1!而具有复杂变化的扩展层和特定层就类似于数学中的2和3,然而,我们都知道,在数学中,0和1才是最重要的,没有0和1,数学系统是无法构建的。
对于抽象层次而言,面临的问题是如何保护抽象层次的边界,确保上层抽象的变更不会引起下次抽象的具体变更。这就要求下层抽象在扩展实现时委派逻辑到扩展抽象层中新的接口和抽象。这样即保证了核心抽象的基本语义,由保护了核心抽象的边界。
系统必须支持核心抽象层为下层抽象留下扩展的空间,基本的手段是通过暴露Factory,将扩展实现注入到核心抽象层次中;除了扩展,系统还需要支持替换(override),也是要暴露核心层的Factory,将替换实现注入到系统中;现在很多基于类似Spring的系统,可以借助Spring的Bean Override机制完成;
这样的抽象层次由于本身是完备和有边界的,他们可以被独立地维护。
在全系统下的核心抽象层是0和1,然而在考虑扩展抽象层时,该层就成为其特定抽象层的0和1,我们需要像构建核心抽象层一样来构建该层,以保持本身的完备性,边界以及扩展性。
如此反复迭代,随着系统外围的边界不断扩大,全系统所提供功能也越来越多,扩展点也就越来越多,系统支持的动态特性也越来越多!
分享到:
相关推荐
以上就是基于C语言的二叉树抽象数据结构实现的基本框架。在实际应用中,可能还需要根据具体需求添加更多的功能,如平衡二叉树(AVL、红黑树等)、树的合并与分割等。理解并熟练掌握这些概念和操作对于学习更高级的...
【标题】:“2017-3基于抽象概念的知网词语相似度计算_朱新华1” 【描述】中提到的研究主要关注如何提高基于知网(HowNet)的词语相似度计算效率。研究者提出了一个新的方法,即基于抽象概念的快速计算策略。他们将...
本文将深入探讨一种基于人工智能和图论的Web站点层次结构抽取算法,该算法能够高效地重构网站结构,提升搜索引擎、网站管理及推荐系统的运行效率。 #### 一、算法原理与结构 该算法的核心在于通过分析Web站点的...
软件体系结构风格,如层次结构和基于消息的层次结构,主要区分在于组件间的通信方式。B/S(浏览器/服务器)结构常用于Web应用,减少了客户端的负担;C/S(客户机/服务器)结构则分为两层和三层,两层结构简单但维护...
这项研究将预期网络威胁及其抽象层次结构层次的外观集中在人类的心理画面水平上。 该研究涉及在网络攻击下个人心理状态行为的建模。 代理人的心理状态不可观察,我们提出了一种非平稳隐马尔可夫链方法来对代理人的...
《基于层次组合抽象的智能系统形式化验证》 在当今信息技术和嵌入式技术高度融合的时代,智能系统已经成为实现高效智能控制的关键。然而,随着系统规模的不断扩大,高并发性特征使得系统的安全性变得至关重要。传统...
《基于混合抽象机制的多智能体系统动态分层强化学习算法研究》这篇论文探讨了如何在人工智能和机器学习领域中解决多智能体系统中的“维度灾难”问题,以提高学习效率。强化学习作为机器学习的一个关键分支,由于其...
在以标准过程为基础的过程复用中,为解决传统的基于标准过程裁剪中标准过程只有单一抽象层次,造成裁剪工作量大的问题,提出了创建多抽象层次标准过程以满足不同应用需要;对相同功能不同抽象层次的过程采用继承机制...
《破解盒子:愚弄基于抽象的深度学习监视器——对深度学习抽象化异常检测的攻击性样本研究》 深度学习,作为机器学习的一种形式,利用多层次的概念架构来适应复杂的数据。这种模型在输入层处理基本概念,而在输出层...
本文由吴跃和罗吴蔓撰写,发表于《电子科技大学学报》2001年第2期,主要探讨了统一建模语言(UML)在软件开发中的应用以及如何构建基于分层结构的抽象模型机制。作者们根据传统的软件开发方法经验和对UML传统三层抽象...
文章摘要中提到,研究者利用近似模拟来设计多智能体系统的层次控制,通过构建一个简化的抽象系统来指导智能体行为,讨论了抽象系统与多个智能体之间的模拟关系,并提出了基于这种抽象系统的分布式层次控制策略,以...
由于数据结构课程具有一定的难度和抽象性,它通常会结合理论讲授和上机实验两部分内容,以提升学生理论与实践相结合的能力。然而,传统的数据结构教学模式存在一些问题,如过于依赖理论讲授,缺乏足够实践,使得教学...
本文针对全日制本科课程“数据结构”中存在的教学难题,提出了一种新的教学方案,即基于分层教学的带动导向式实验课教学方案。在深入研究分层教学理论的基础上,针对学生编程基础差异大和理论性强、实际应用联系不够...
分层结构具有以下优点:一是支持基于抽象程度递增的系统设计,允许设计者可以将复杂系统设计按递增的步骤进行分解;二是对系统进行了功能划分,各层功能独立,便于维护和升级;三是分层结构有助于在软件开发中实现...
随着信息技术的发展,软件系统的规模和复杂度日益增加,软件体系结构作为一种高层次的抽象设计手段,已经成为决定软件系统成功与否的关键因素之一。对于大型系统而言,良好的软件体系结构设计尤为重要,它直接影响着...
针对软件系统开发初期体系结构中系统模块层次关系及模块间数据流关系进行抽象, 形成体系结构形式化定义, 建立可靠性因子的度量准则及度量模型, 依据度量模型对可靠性进行分配。最后结合实例进行了分析和验证, 结果...
抽象结构是指通过抽象出事物的本质特征和内在联系,将其形式化为数据结构的过程。在ACM竞赛中,合理地定义数据结构可以极大地简化问题的求解过程,提高程序的效率。 ### 最大流 最大流问题是在有向图中寻找从源点...