一、引言
上一篇文章中已经提到系统是具有层次特性,那么系统的层是如何推导出来的呢?本文就主要从系统分层的最终表现反向推导出分层的过程。
二、再论系统特性
在上一篇文章中根据系统的定义,提炼出系统的两个关键特点:系统的整体和部分、系统的层次结构性。层次特性现在我们大概知道了,在计算机系统中也有接触过,如网络协议的分层、计算机的分层等等。
分层是一种表象特征,同时系统也具有整体和部分的特征。通过整体与部分的特征来看,一个系统(整体)它应该包含多个子系统(部分),那么问题来了,如何认识子系统呢?
三、应对系统复杂的手段
在<<面向对象分析与设计>>一书中,作者提出了三种手段来应对系统的复杂性:分解、抽象、层次结构。
分解: 分而治之是常用处理复杂问题的手段。对于系统业务架构而言,分解的是业务流程。一个业务会包含多个子业务流程,如优惠券,就有 建券、发券、用券、退券,每个子业务流程下面又可以分解,比如建券又涉及到预算申请、有效期设置、领券、用券限制条件等,不断地向下分解。
抽象: 抽象是抽出来要像,即要反应本质。分解出来的内容是非常多的,要找到相似的内容。层次可以看到把相似或者同等位置的内容放在同一层,层次之间又存在依赖关联关系。抽象出来的东西一定是最能反馈事物本质的东西,一个人能记住的东西有限,去掉不重要东西。
层次结构:抽象出来的内容是按照一定的规则组合出来的,此时可以按照一定的认知层次进行分层排序,构成一个完整的系统结构。
所以到这里可以看到,一个复杂的系统,先进行分解,然后通过抽象找到相似的内容,相似的内容放在一层。
四、小结
本文主要讨论应对系统复杂的手段:分解、抽象、层次结构 ,后续的文章按照这个思路写。
如果你对java技术很感兴趣,可以加入我的java学习群(374308445)来交流学习,里面都是同行,群验证【CSDN2】有资源共享。
不要再用"没有时间“来掩饰自己思想上的懒惰!趁年轻,使劲拼,给未来的自己一个交代!