软件设计模式实验:状态-观察者+组合-观察者在在线书店与会议管理系统中的应用

版权申诉
5星 · 超过95%的资源 24 下载量 18 浏览量 更新于2024-08-09 7 收藏 2.88MB DOC 举报
在软件设计模式作业中,学生罗首峰针对2021秋季学期的课程进行了实验,主要涉及状态模式、观察者模式、组合模式和工厂方法模式的运用。以下是各个部分的详细解析: 1、状态模式与观察者模式 1.1 实验背景 该实验是模拟一个网上书店系统,用户通过购买图书积攒积分,根据积分等级享受不同的优惠。User类作为核心,拥有基本属性如用户名、等级和已付金额,以及操作如购买图书。不同会员级别(普通会员、银会员、黄金会员、钻石会员)定义了各自的优惠策略,并通过CalcRealAmount和ChangeCredit方法来计算实际价格和积分变动。在特定活动如双十一或周年庆时,系统通过观察者模式自动发送通知给会员。 1.2 模式应用 - 状态模式用于管理用户的不同积分等级状态,通过一系列状态类(如普通会员、高级会员状态)来表示和处理用户的当前状态。 - 观察者模式用于实现活动通知的功能,Subject(书店)对象作为发布者,当状态发生改变(如积分达到升级条件)时,通知Observer(会员)更新其状态和行为。 1.3 实现与结果 实验中提供了类图和代码示例,展示了如何设计状态类、抽象目标类、具体目标类(如顾客类和会员等级类)以及客户类(Client)。运行结果显示了模式的有效应用。 1.4 心得体会 罗首峰体会到设计模式在解决实际问题上的威力,尤其是观察者模式和状态模式的结合,使得代码结构更加清晰,提高了复用性和灵活性。 2、组合模式与观察者模式 2.1 会议管理系统 在这个模块中,会议管理系统通过组合模式来管理员工和部门的关系,行政人员可以分别向个体员工或整个部门发送通知。观察者模式同样在此场景中发挥作用,系统作为Subject,管理员的行为触发通知的发送,员工和部门作为Observer接收到通知。 总结: 本次实验涵盖了状态模式、观察者模式、组合模式和工厂方法模式的应用,通过实际案例展示了这些模式如何优化代码结构,提高系统的可维护性和扩展性。学生理解并实践了这些设计模式,体验到了它们在实际项目中的价值。