|
|
教学公告
17软件工程《软件构造》第9周安排
注意:本周因为5.1假期调休,需要在周日(4月26日)和周一(4月27日u)连续上两天课。请大家注意。
一、教学安排
周日(4月26日) 讲授第16章(247-261页)的内容
周日(4月27日) 讲授第17章的内容262-276页
授课:腾讯课堂:
https://ke.qq.com/webcourse/index.html?cid=2107503&term_id=102209673&lite=1&from=800021724
实验作业在学者网课程平台:
http://www.scholat.com/course/rjgz
实验4:代理模式、职责链模式
二、重点难点
1、理解代理模式和职责链模式的动机和结构
2、理解如何实现 :开闭原则、单一职责原则、多态、高内聚低耦合
3、了解动态代理的实现原理,掌握动态代理的实现。
4、掌握职责链模式的实现
大家可以根据自己的情况进行相应的预习
三、课前思考
小明所在的软件公司欲软件公司开发人员开发一款OA软件,该元件有两个重要的功能模块,一是用户权限管理,二是业务的逐级审批流程处理。
权限管理模块中需要根据用户不同的级别赋予其不同的权限(如 浏览,发布,审核),并且用户的每次操作都需要在日志中记录用户的操作信息。
在业务审批模块中,用户提交一个需要审批的申请后,系统自动完成业务审批流程的流转。
思考1:如何实现代理模式实现用户权限管理和记日志操作?
思考2:如何使用职责链模式实现审批流程的双向自动流转?
思考3:把两种模式相结合使用代码模拟实现用户权限检查,业务审批,记录日志。代码要求体现开闭原则,单一职责原则,多态,高内聚低耦合。
四、师说
1、程序设计是为了满足人们更快更好地解决问题的需要,程序设计过程就是问题解决的建模过程, 每一种设计模式都是人们经过了多年的程序设计实践后总结出来的解决某一类问题的优秀范式。遵循设计模式和面向对象的设计原则可以使你的代码在可重用性、可维护性、可扩展性方面更加优秀。问题越复杂,后期维护和功能扩展需求越强,设计模式就越显得重要。特别是现在软件开发过程中流行采用敏捷开发,后期维护和拓展的需求更加强烈。
2、人们总结出了多种经典的设计模式,并把它们独立开以便于交流和学习,但是解决问题的过程中,很多时候都是需要多种模式相互配合,才能更好地解决问题。希望大家在熟练掌握每一种模式后尽量思考使用这些模型来解决问题,以达到融会贯通。
五、拓展阅读材料