您申请加入课程:软件构造

软件构造

华南师范大学软件工程专业

https://www.scholat.com/course/rjgz
  • 创建者

    Creator

    潘家辉
  • 活跃度

    Activeness

  • 访问量

    Visits

    79848

教学公告

21软工第3周安排
[作者: 潘家辉  发布时间:2024-03-11 09:38:53  浏览次数:274次]

一、教学安排

讲授第7章的内容106-118页

讲授第8章的内容 119-123页

二、重点难点

1、理解单一职责原则、里氏代换原则、开闭原则

2、建造者模式中指挥者类的作用

3、掌握中如何编程实现建造者模式

4、介绍建造者模式的钩子方法

5、熟练掌握原型模式的结构

大家可以根据自己的情况进行相应的预习

三、课前思考

公司准备开发一款名为《群侠传》的网络游戏,该游戏采用主流的RPG模式,玩家可以在游戏中扮演虚拟世界中的一个特定角色,不同类型的游戏角色,其性别、脸型、服装、发型等外部特性都有所差异,例如“天使”拥有美丽的面容和披肩的长发,并身穿一袭白裙;而“恶魔”极其丑陋,留着光头并穿一件刺眼的黑衣。公司要求小明开发一个小工具来创建游戏角色,可以创建不同类型的角色并可以灵活增加新的角色。

思考1:如果没有指挥者类Director,客户端将如何构建复杂产品?

思考2:建造者模式与工厂模式的区别?

思考3:能否将原型模式的代码中的clone()方法写成: public Prototype clone() { return this; }?给出你的理由。

四、师说

我们先说一个生活中的小例子,当我们在外面饭店吃饭时,比如点个水煮肉片,这家店可能会辣一点、那家店可能会咸一点、对面那家可能放青菜、隔壁那家可能放菠菜,每家店做出来的都不一样,明明都是水煮肉片却有不同的做法,如果都一样就不会说这家难吃那家好吃了。

那再看快餐店,比如KFC,我们点个新奥尔良烤鸡腿堡,所有人不管在哪个城市哪家店,做法、味道都是一样的,为什么呢,因为它用料、时间、温度等等都是严格规定的,我们只需要下订单就行了,这就是一个建造者模式。一句话概括就是,将对象复杂的创建过程与表示分离,这样适用同样的构建过程创建不同的对象。

同样地,以我们KFC点餐为例,我们可以点一个汉堡和一个冷饮,汉堡可以是鸡肉汉堡、牛肉汉堡等等,总之是装在盒子中的,冷饮可以是可乐、奶茶等等,反正是装在瓶子中的。下面我们来用建造者模式对其进行组合,用户只需提交订单即可,UML图如下:

五、阅读材料

对工厂模式与建造者模式的个人理解?https://blog.csdn.net/MOnkeyD5/article/details/73478940?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task

面试必考点之建造者模式

https://blog.csdn.net/wgangyiii/article/details/79916666


相关课程

扫一扫二维码,快速加入本课程!

放大二维码 查看使用方法
关闭