宋行健-2020-2021学年实验报告:设计模式-实验6结构型模式3

需积分: 0 0 下载量 188 浏览量 更新于2024-08-04 收藏 1.37MB DOCX 举报
"宋行健的实验61报告,涉及软件工程专业设计模式课程,实验内容为结构型模式的代理模式应用。" 实验报告详细解析了软件工程专业2018级学生宋行健在2020-2021学年第二学期设计模式课程中的实验项目——实验6,主要探讨了结构型模式中的代理模式。实验教师为王晓蒙,实验时间定于2021年4月25日,旨在进行设计性和验证性的实践操作。 在实验中,宋行健首先通过阅读和分析代码,理解了程序的整体架构并绘制了类图。程序的核心功能在于ProxyApp类,它负责界面布局和响应函数,提供了登录验证功能,只有在登录后才能执行计算操作。代理模式在此处得以体现,具体表现为接口ICalculator(原IAdd)及其被代理对象Calculator。Calculator的调用是通过MyInvocationHandler实现的动态代理,利用Java的反射机制在运行时动态创建了实现ICalculator接口的新类及其实例,即proxyCalculator。 MyInvocationHandler是动态代理类,实现了InvocationHandler接口,它的关键在于invoke方法。当通过proxyCalculator调用任何方法时,实际上这些调用会被转发到InvocationHandler的invoke方法来处理,这展示了Java动态代理的工作原理。 此外,实验中还应用了单例模式来管理登录状态。Manager类作为单例,确保在整个程序运行过程中只实例化一次,提供登录状态的检查。这样设计提高了效率,避免了多次创建对象导致的资源浪费。 在改进方案部分,宋行健提出了一项建议:在用户未登录状态下尝试计算时,程序应弹出提示窗口,明确告知用户需先登录才能进行计算。这将增强用户体验,使程序的交互更加友好。 该实验报告详细阐述了代理模式在登录验证和控制访问权限中的应用,同时结合了Java动态代理和单例模式,展示了软件设计中模式的巧妙运用。通过对代码的分析和功能的优化,宋行健深入理解了设计模式的实战价值。