软件体系架构课下作业08

题目:MVC在Java Web应用程序中的实例分析

要求:结合六个基本质量属性,分析具体功能模块的MVC设计实现(例如登录、用户权限等功能模块)在实际项目中的具体应用,或分析MVC设计模式在具体网站中的应用(需要列举实例)

  MVC将软件系统划分为三部分:模型层(Model)、视图层(View)、控制器(Controller),通过这样分层,系统层次更加明显,降低了系统内的耦合度,提高了模块内的内聚,这样的做法,同样满足了基本质量属性。软件系统的六个质量属性为:可用性、可修改性、性能、安全性、可测试性、易用性。下面将结合实际的具体网站中的应用进行分析。

  先从登录开始分析,国内某知名视频网站的登录页面上通过开发者工具分析,可以看出来并没有和数据库以及交互代码,只有组成显示页面必须的html代码,需要的css、javascript代码都单独封装在其他的文件中,在页面内引用需要的文件,做到了视图层和控制器分离。符合可修改性(如果页面或是css、javascript文件需要改动,仅仅改动需要的位置,而不会牵一发而动全身)、安全性(其他人不会简单地获取到控制器层的代码)。

  需要输入用户名和密码,密码通过暗文显示,并且在传输过程中加密,同时还可以通过扫描二维码进行登录,将模型层得到的数据传送到控制器,再通过分类提供给模型层,同时也实现了可用性、安全性。

  用户在退出后,再一次进行登录,如果没有退出,网站会自动进入上一次登录成功的网站首页,如果已经退出,登录页面的用户名处会显示上一次使用登录的用户名,使用cookie来保存,这简化了用户登录的复杂性,提高了可用性和易用性。

  用户在登录成功后,可以查看自己的浏览记录,以及关注的频道、UP主,这是视图层和模型层的交互,提高了网站的可用性和易用性。

  用户刚打开网站后,不会将所有视频全部加载,只加载用户正在浏览的那些,当用户进行翻页或者上下浏览时,会陆续加载那些新出现的视频,这提高了网站的性能;

  网站上显示的视频都是根据用户的喜好而自动推送的,其他分区的视频,也都是动态地从模型层调取的数据,视图层无需关注要显示的数据,而只是将模型层传递过来的数据按照写定的模式,在页面上指定位置显示出来,这满足了可修改性、可用性。

  通过分析网站的源代码,不难发现,网站保留了一些其他的按键,有些是只有在指定时间才会用到,官方将这些按钮隐藏起来,在需要的时候再进行调用,提高了系统的可测试性。

原文地址:https://www.cnblogs.com/Daddy/p/6800377.html