|
|
教学公告
一、教学安排
自学第2章的内容 24-47页
讲授第3-4章的内容48-76页
实验作业已布置
http://www.scholat.com/course/rjgz
视频资料(若因疫情原因不能回校,可以到砺儒云课堂观看线上授课视频)
https://moodle.scnu.edu.cn/course/view.php?id=9522
二、重点难点
1、设计模式的起源、定义、以及作用
2、理解软件构造与设计模式的关系
3、理解创建型模式
4、简单工厂模式的结构和分析
三、课前思考
小明到A公司进行笔试,题目如下:
请用C++、Java、Python或C#任意一种面向对象语言实现一个计算器控制台程序,要求输入两个数和运算符,得到结果。
四、师说
设计模式是软件工程师的必备技能之一,在各种面试宝典里面是经常看到的,这意味着公司在面试过程(特别是编程面试)中会有非常大的几率碰到相关的题目。在公司中接手旧项目(接盘前任的代码)还是参与新项目(设计能力不能丢人),你都必须学习设计模式。更别说看懂经典源码,不懂设计模式更是寸步难行,难以理解其中关键。
实际上,编程能力和设计技巧是对彼此很好的补充。一个好的程序员通常都是一个好的软件设计人员。他们知道怎么把一个问题分割成一段段代码或者软件设计,但这些能力和技巧并不能凭空而来。本学期课程的核心内容就是掌握熟悉GoF 23种设计模式,让大家从另外一个维度去理解面向对象设计的6大原则。
当然,软件设计模式只是一个引导,在实际的软件开发中,必须根据具体的需求来选择。这23种设计模式其实也不是太难,其本质就是面向对象设计原则的实际运用,是对类的封装性、继承性和多态性,以及类的关联关系和组合关系的充分理解。个人觉得,通俗地说,有4点是大家需要理解的:
1、设计模式是前辈们对代码开发经验的总结,是解决特定问题的一系列套路。它不是语法规定,而是一套用来提高代码可复用性、可维护性、可读性、稳健性以及安全性的解决方案。
2、对于简单的程序,可能写一个简单的算法要比引入某种设计模式更加容易。
3、但是对于大型项目开发或者框架设计,用设计模式来组织代码显然更好。
4、本学期讲解的软件设计模式,用Java语言为例进行讲解,但是设计模式并不是 Java 的专利,它同样适用于 C++、Python、C#、Javascript 等其它面向对象的编程语言。
五、阅读材料
23种设计模式-6大原则
https://www.cnblogs.com/welan/p/9005019.html
如何给女朋友解释什么是面向对象编程?
https://baijiahao.baidu.com/s?id=1626333751993181194&wfr=spider&for=pc