软件分层必须遵守的原则:
1.每一层都应该都是由类或组件组成。
2.只存在上层对下层的依赖,下层不依赖于上层。
3.上层调用下层的api,下层实现细节的变动不会影响到上层的代码。
一个软件系统好的划分结构应该是:表现层->控制层->业务逻辑层->持久层->数据库层。
软件这样分层的好处:
1.可伸缩性:可以把每一层分布在不同机器上,实现分布式应用。
2.可维护性:如果需求变动,只要相应调整某一层的实现即可。
3.可管理性:分层有利用分工。
4.可扩展性:增加功能只需要在相应层上调整即可。
5.可重要性:业务逻辑模块则可供系统的多个模块公共。
缺点:
1.前期设计和编码工作可能比较繁琐。
2.调试相应比较困难,必须通过日志记录系统运行状态。
补充:
1 必须有一个不同等级的抽象时,应设立一个相应的层次
2 依据逻辑功能的需要来划分层次,每一层实现一个定义明确的功能集合
3 尽量做到相邻层间接口清晰,选择层间边界时,应尽量使通过该界面的信息流量为最少
4 结构清晰,有利于理解学习