软件构造
📄️ Note1-不可变(immutable)设计原则
我们先从 Java 的数据类型与类型检查说起
📄️ Note2-设计规约(specification)
上一节,我们讲了编程语言中数据类型、变量、值的概念,尤其详细分析了这三者可变与不可变设计的区别,并导出不可变设计原则
📄️ Note3-抽象数据类型(ADT)
抽象数据类型是软件工程中一个普遍原则的实例,要解决如何设计良好的抽象数据结构,通过封装来避免使用者获取数据的内部表示
📄️ Note4-面向对象编程(OOP)
在前一章,我们学习了抽象数据类型(ADT)理论,这一章,我们学习 ADT 的具体实现技术:OOP
📄️ Note5-Equality in ADT and OOP
在现实物理世界中,任何对象都是不相等的
📄️ Note6-面向复用(reuse)的软件构造技术
前几章介绍了软件构造的核心理论——ADT,核心技术——OOP,其核心是保证代码质量、提高代码安全性
📄️ Note7-面向可维护性的软件构造技术
本文面向另一个质量指标:可维护性——软件发生变化时,是否可以以很小的代价适应变化
📄️ Note8-详解七大设计模式
本文结构图:
📄️ 二维凸包问题详解
这是我在做软件构造实验时遇到的问题,同时,它也是 LeetCode 4 月 23 日的每日一题。我之前没有系统刷过算法,既然遇到了就索性学习并总结一下。题目链接:
学习资料
- MIT 6.031: Software Construction
- 哈工大《软件构造》课程