应用程序的分层体系结构发展:
两层应用:应用程序层,数据库层
三层应用:表示层,业务逻辑层,数据库层
四层应用:表示层,业务逻辑层,持久化层,数据库层
N层应用
层与层之间的特征:
1.层与层之间存在自上而下的关系,上层组件会访问下层组件的API;而下层组件不应该依赖上层组件;例如 表示层依赖于业务逻辑层,业务逻辑层依赖于数据库层
2.每个层对上层公开API,但具体是实现细节对外隐藏,(这也就是java封装思想的体现吧)当某一层的具体实现发生改变,只要他的API不变,就不会影响其他层。(这里或许可以体会到耦合和解耦的意思哦)
仔细读吧,慢慢的看不懂的思想就体会了。好,废话不说了,看看分层有点吧
分层的优点:
1.可伸缩性:可以把每一层分布在不同机器上,实现分布式应用。
2.可维护性:如果需求变动,只要相应调整某一层的实现即可。
3.可管理性:分层有利于分工。
4.可扩展性:增加功能只需要在相应层上调整即可。
5.可重要性:业务逻辑模块则可供系统的多个模块公共。
缺点:
1.前期设计和编码工作可能比较繁琐。
2.调试相应比较困难,必须通过日志记录系统运行状态。
补充:
1 必须有一个不同等级的抽象时,应设立一个相应的层次
2 依据逻辑功能的需要来划分层次,每一层实现一个定义明确的功能集合
3 尽量做到相邻层间接口清晰,选择层间边界时,应尽量使通过该界面的信息流量为最少
4 结构清晰,有利于理解学习