`
breggor
  • 浏览: 6841 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

模块中层次划分

 
阅读更多
设计良好的模块,应该是层次化的。

例如,模块B扩展了模块A,同时被模块C扩展。这样就形成了A、B、C三个层次。




如图模块的层次

如图所示,层次之间有如下的关系:

上层定义规则,下层定义细节;(上层、下层也可称为内层、外层)

上层是抽象的,下层是具体的;

越上层,越稳定(越少改变);越下层,越易变。

依赖倒转(Dependency Inversion)。下层(具体)依赖上层(抽象),而不是上层依赖下层。

下层扩展上层时,不需要修改到上层的任何代码和配置。即符合开闭原则(Open-Closed Principle简称OCP – Open for extension, Closed for modification)。

每一层均可被替换。

层次化的设计,使软件中的每一个部分都可被增强或替换。

层次化不是自然而然的,而是需要精心的设计。设计一个层次化的组件,可以从下面几方面来考虑:

切分功能。每个组件专心做一件事。

分析哪些会改变,哪些不会改变。不变部分固化在组件中,可能会改变的部分抽象成接口,以便扩展。
分享到:
评论

相关推荐

    液压挖掘机多层次的模块划分方法

    分析了履带式液压挖掘机模块划分背景和特点,通过对它进行功能分解,建立起了功能树,结合复杂产品在功能系统上有层次性的特点,对液压挖掘机介绍了一种基于功能分解的多层次的模块划分方法,并以底盘总成为例,进行多层次...

    论文研究-多约束条件下定制产品模块划分方法.pdf

    为解决定制设计过程中模块划分问题,提出多约束条件下模块划分方法,该方法以功能域、结构域、用户需求域为多约束条件,提出产品定制模块多约束划分准则,构建产品零部件功能关联性矩阵、结构性关联矩阵以及用户需求...

    论文研究-模块度增量与局部模块度引导下的社区发现算法.pdf

    社区结构是复杂网络的重要特性之一,基于层次聚类的社区发现算法很好地利用了模块度来挖掘网络中的社区结构,但其局限性也导致算法对社区结构复杂的网络划分不够准确、无法发现小于一定规模的社区。在层次聚类的基础...

    山地小型地面钻机的便捷移运模块划分模型分析

    针对山地小型地面钻机移运便捷性的要求,通过分析各主要部件在空间结构、功能、物理三方面的关联程度,并且引入层次分析法分析在设计、...再通过层次模糊聚类算法进行计算,从而得到一种满足移运便捷性的模块划分结果。

    基于模块化的物联网商业模式:结构、类型与构建

    当前,理论界与实践界都认为企业需要构建恰当的物联网商业模式,从而有效地释放和获取物联网技术的商业...用户企业通过模块整合构建物联网商业模式,包括技术模块整合、技术模块与业务模块整合、跨企业的模块整合3个层次。

    SysML实践指南第二版第七章使用模块图(BDD)建模

    本章讨论建模系统的结构根据它们的层次和互联。描述模块—SysML的主要的结构构件,被使用来表示两种类型的结构图:模块定义图和内部模块图。这些表示方法是一种系统...模块被定义通过它拥有的特征,可以被划分为结构特征

    两个互联网软件系统概要设计文档模板.zip

    不同的系统类型其概要设计的内容也不相同,通过概要设计准则我们可以根据实际情况确定概要设计的具体...层次划分的方法可以结合业务、部署、运用功能等因素考虑,首先进行分类,然后进行抽象分析,整理共性要素,将功

    ASP人事人力资源管理系统(源代码+毕设文档+开题报告+答辩PPT).zip

    另外,在首页下面的页面中同样按照各自的不同情况划分为6个不同的子模块,然后各自按照相关的导入功能导入,从而使整个系统的内容富有层次感。整个系统的总体结构如下:(针对自己负责的系统实现):

    论文研究-基于最大团的层次化重叠社区发现算法.pdf

    该算法以最大团为扩展对象,然后利用最大团扩展策略生成层次树图,最后采用重叠模块度函数对层次树图进行剪枝得到社区划分结果。在真实网络以及LFR人工网络上的实验结果表明该算法能够有效地挖掘网络中的层次结构和...

    最小最大模块化网络中基于聚类的数据划分方法研究* (2012年)

    本文提出一种新的基于二分K―均值的训练集划分方法,它可以得到全局最优解,时间复杂度较低,并且可以通过层次聚类得到相对平衡的样本划分效果.在现实数据集上的实验表明,该划分方法在不降低分类精确率的情况下能...

    毕业设计:ASP网上军事论坛的设计与实现(源代码)

    本论坛系统主要针对游客、会员、(文章)主题、帖子、留言、公告信息、管理...这样,论坛中的模块功能的划分就清楚了。 概念层数据模型是现实世界到机器世界的一个中间层次,反映了现实系统中有用价值的信息结构,因此

    毕业设计:ASP004人事(人力资源)管理系统

    另外,在首页下面的页面中同样按照各自的不同情况划分为6个不同的子模块,然后各自按照相关的导入功能导入,从而使整个系统的内容富有层次感。整个系统的总体结构如下:(针对自己负责的系统实现): 人事档案管理...

    毕业设计:ASP人事人力资源管理系统(源代码)

    另外,在首页下面的页面中同样按照各自的不同情况划分为6个不同的子模块,然后各自按照相关的导入功能导入,从而使整个系统的内容富有层次感。整个系统的总体结构如下:(针对自己负责的系统实现): 员工列表查看...

    C语言程序设计-教师信息管理系统

    问题定义: 创建一个教师信息管理系统...可以用模块化层次结构图(即模块图)来分析其任务的划分,一般从上到下进行,最上面一层是主模块,下面各层是其上一层模块的逐步细化描述。 文档附带有源程序、参考报告文档。

    水果商城网站 v1.0

    详细功能:一、系统前台功能特色功能:仿58同城强大的产品相册上传功能,产品放大功能,产品相册功能1、菜单导航模块划分合理的导航模块使浏览者快速地查找自己需要的产品信息,提高商品购买率。2、商城动态及公告...

    软件开发这点事(邵志东)

    设计软件结构的具体任务是:将一个复杂系统按功能进行模块划分、建立模块的层次结构及调用关系、确定模块间的接口及人机界面等。概要设计方法包括模块化方法、功能分解方法、面向数据结构的设计方法、面向对象的设计...

    液压支架模块化设计策略

    基于功能-结构的产品概念设计,提出了一种液压支架模块化设计方法。利用质量功能展开分析支架...利用模糊聚类算法和层次分析法,考虑结构间的相互关系进行模块划分。利用模糊综合评判原理,通过相似度进行模块配置的评价。

    酒类品牌电商统计系统.rar

    设计软件结构的具体任务是:将一个复杂系统按功能进行模块划分、建立模块的层次结构及调用关系、确定模块间的接口及人机界面等。数据结构设计包括数据特征的描述、确定数据的结构特性、以及数据库的设计。显然,总体...

    软件概要设计方案模板.doc

    2、 软硬件复合的系统项目中,如果单板软件规模较大,内容比较复杂,内部划分多个层次和模块,也作为单板软件子系统的概要设计模板。 本模板使用时候,已经假定在概念阶段在概念生成,概念选择和概念验证已经确定了...

Global site tag (gtag.js) - Google Analytics