现在市场上主流的软件设计架构多关注于横向层面,即数据层,逻辑层和界面层,组件化层面必须同时关注纵向的隔离和解耦,在模块划分好之后,在每个模块的内部,每一个业务组包含数据,业务,和UI层面后,具备了具有一定功能的业务组件.
各个组件之间的相互调用原则
UI层调用逻辑层,逻辑层调用数据层,最好不要出现逆向调用的情况,在不同模块之间尽量使用同层级之间的数据调用,比如A模块的逻辑层与B模块的逻辑层之间的相互调用,当A模块需要操作B模块的UI层时,建议将B模块的UI层接口放到B模块的逻辑层,再利用A模块的逻辑层去调用B模块的逻辑层
数据库的隔离与解耦
对于数据库也要考虑这一方面,尽量减少数据存储过程和关联视图的使用,尽量让数据库不要承载任何业务逻辑,再有,数据库的公共基础数据抽取到公共的业务逻辑中去.总而言之,尽量使模块的功能单一化,专一化.
基础组件的抽取
对于安全,流程,权限等一些基础的业务,每个业务组件都需要用到的组件,建议抽取成独立的基础组件.
总结
在以上原则下,就没有业务组件存在相互依赖的情况,各个组件的依赖关系转化为层与层之间的依赖,整个组件之间的依赖关系便转化为一种倒金字塔结构,这样可使得最大化的组件独立部署
网友评论