本课程作业聚焦于软件设计模式的实际应用,通过联合运用多种经典的设计模式解决复杂编程问题,旨在加深学生对设计模式的理解与实践能力。
### 1. 状态模式与观察者模式
某网上书店允许用户通过购买图书获得积分,并且当用户的积分数达到一定值后可以升级为不同级别的会员(如普通会员、银会员、黄金会员及钻石会员等)。不同的会员等级在购书时享有不同程度的优惠。此外,用户还可以利用积分兑换小礼品或购书券。
- **User类**:包含`userName`, `userLevel`, 和 `paidMoney` 等属性,并且提供一系列用于获取和设置这些属性的方法(get/set方法)。同时具备一个名为`BuyBook`的方法。
- 其他会员相关类:每个都拥有计算实际支付金额的`CalcRealAmount()` 方法以及用来处理积分兑换的`ChangeCredit()` 方法。
### 2. 组合模式与观察者模式
某会议管理系统中有一个“会议通知发送”功能模块,具体要求如下:
1. 行政管理人员可以向特定员工或多个员工发送工作安排的通知。例如,在周六需要告知A和B两位员工加班时,系统会自动将这一信息传达给这两个人。
2. 为了能够接收到此类通知,无论是个人还是部门都必须事先注册到会议列表中。
### 3. 建造者模式、工厂方法模式与状态模式
在联机游戏中,每个角色需要具备完整的外观设计。这些设计包括基础的人物形象(body)、服装(costume)以及武器(weapon)等元素。