第13章 如何分层
![](https://i-blog.csdnimg.cn/blog_migrate/462e20a773e155a912b9ebbce52b0cd7.png)
13.1 分层架构
13.1.1 常见模式:展现层、业务层、数据层
![](https://i-blog.csdnimg.cn/blog_migrate/f4b7be4c31080de8474cc477f585e70c.png)
13.1.2 案例一则
![](https://i-blog.csdnimg.cn/blog_migrate/c605771e8ecfae177f1d70577b1ed492.png)
![](https://i-blog.csdnimg.cn/blog_migrate/16fef80103280be86361d06560200fea.png)
13.1.3 常见模式:UI层、SI层、PD层、DM层
![](https://i-blog.csdnimg.cn/blog_migrate/2ab2ac85726444108c19a298600e10d2.png)
![](https://i-blog.csdnimg.cn/blog_migrate/37719644b59dd6e9e176a214e68a82cb.png)
13.1.4 案例一则
![](https://i-blog.csdnimg.cn/blog_migrate/a0a7eb5006228ef1c156cb64273dad31.png)
13.2 分层架构实践技巧
13.2.1 设计思想:分层架构的“封装外部交互”思想
![](https://i-blog.csdnimg.cn/blog_migrate/b735721944fdd271fb535003358a68e1.png)
备注:
个人认为:
只有单机版应用程序才适合使用三层架构
四层架构更适合大部分系统,比如有外部通信的软件系统
13.2.2 实践技巧:设计分层架构,从上下文图开始
![](https://i-blog.csdnimg.cn/blog_migrate/bffe43869c02e1bd1882eb1804bb047f.png)
![](https://i-blog.csdnimg.cn/blog_migrate/74bfb66883e46cbb53e2819d849298a2.png)
![](https://i-blog.csdnimg.cn/blog_migrate/a76b1795aa10179dcac109c5e5515933.png)
备注:
用例图也是识别系统和外部关系的最重要的需求工具之一。
![](https://i-blog.csdnimg.cn/blog_migrate/fcd33596297eebbf9b1660cde38b4d2e.png)
![](https://i-blog.csdnimg.cn/blog_migrate/bcc6698b0800c26ef94f0ce2d8826e7e.png)
备注:并非所有的软件系统都包含4层模型中的所有层。
![](https://i-blog.csdnimg.cn/blog_migrate/b9dccd2a6db61e507f50ecb83c0ed345.png)
13.3 实际应用(11)——对比MailProxy案例的 4种模块划分设计
13.3.1 设计
![](https://i-blog.csdnimg.cn/blog_migrate/066827c36b4caad3126e8d40952cd879.png)
13.3.2 设计的优点、缺点
![](https://i-blog.csdnimg.cn/blog_migrate/546927f2de2af8bddb686edade0a9bb5.png)
感悟
本文的四层架构,只是通用的四层架构,通信系统比四层架构更为复杂,通常会根据协议栈类型进一步的划分软件的层次。