17软件工程《软件构造》第4周安排
一、教学安排
自学第8章的内容 123-134页
讲授第9章的内容136-147页
导学视频资料在砺儒云课堂:
https://moodle.scnu.edu.cn/course/view.php?id=9522
实验作业在学者网课程平台:
http://www.scholat.com/course/rjgz
(本周完成实验二)
二、重点难点
1、熟练掌握原型模式和单例模式的结构
2、掌握中如何实现原型模式的浅克隆和深克隆
3、掌握懒汉式和饿汉式单例模式的区别
4、理解单例模式的适用场景
大家可以根据自己的情况进行相应的预习
三、课前思考
小明所在的软件公司承接了一个服务器负载均衡软件的开发工作,该软件运行在一台负载均衡服务器上,可以将并发访问和数据流量分发到服务器集群中的多台设备上进行并发处理,提高系统的整体处理能力,缩短响应时间。由于集群中的服务器需要动态删减,且客户端请求需要统一分发,因此需要确保负载均衡器的唯一性,只能有一个负载均衡器来负责服务器的管理和请求的分发,否则将会带来服务器状态的不一致以及请求分配冲突等问题。如何确保负载均衡器的唯一性是该软件成功的关键。
四、师说
单例模式要求保证一个类在任何情况下都绝对只有一个实例,并且提供一个全局访问点。可以说,单例模式是设计模式中最容易理解,也是最容易手写代码的模式了吧。但是其中的坑却不少,所以也常作为面试题来考。另外,单例模式的代码编写还会涉及到线程安全,双重锁定等技术的理解。大家学习的时候可以适当扩展和关联这些知道点来学习。
在实际开发场景中,Windows的任务管理器、回收站,网站的计数器,应用程序的日志应用,Web应用的配置对象的读取,数据库连接池的设计,操作系统的文件系统等等均是典型的单例模式应用。
五、阅读材料
漫画:什么是单例模式
https://zhuanlan.zhihu.com/p/33102022
单例模式懒汉式和饿汉式区别
https://blog.csdn.net/qq_35098526/article/details/79893628
单例模式的七种写法
https://www.iteye.com/blog/cantellow-838473