![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
软件构造
文章平均质量分 87
冬雪落红南
冬雪落红南梦醒才知不留痕
展开
-
软件构造博客五------软件构造技术
白盒复用:源代码可见而且可修改和拓展。黑盒复用源代码不可见,不能修改白盒框架:通过代码层面的继承进行框架拓展。黑盒框架:通过实现特定接口/delegation进行框架拓展。LSP原则:子类型多态:客户端可用统一的方式处理不同类型的对象。例如:在可以使用a的场景都可以使用c1和c2代替而不会存在任何问题。如果对于类型T的对象x,q(x) 成立,那么对于类型T的子类型S的对象y,q(y) 也成立。子类型可以增加方法,但不可删;子类型需要实现抽象类型 (接口、抽象类)中所有未实现的方法。子类型中重写的方法必原创 2022-06-13 16:04:09 · 150 阅读 · 1 评论 -
软件构造博客4----ADT和OOP
抽象数据类型与表示独立性:能够分离程序中数据结构的形式和对其使用的方式。如何设计良好的抽象数据结构,通过封装来避免客户端获取数据的内部表示(即“表示泄露”),避免潜在的bug——在client和implementer之间建立“防火墙”,可以很好地防止表示泄露。abstraction functions:抽象函数(AF);representation invariants:表示不变量(RI)--通过抽象函数和表示不变量的概念,对类实现ADT意味着什么这一更重要的数学概念。这些数学概念在软件设计中非常实用。re原创 2022-06-09 21:06:04 · 212 阅读 · 0 评论 -
软件构造博客三----软构笔记
·数据类型基本知识,静态/动态类型检查·可变/不变的数据类型·可变数据类型的危险性·不变数据类型的优越性·用Snapshot图理解数据类型·用集合类表达复杂数据类型·了解空引用的危害并避免数据类型指的是一组值以及可以对其执行的操作。例如:boolean类型包括true和false;int类型表示整数等。变量指的是用特定数据类型定义,可存储满足类型约束的值。java的基本数据类型:int,long,boolean,double,char。java的对象数据类型:String,BigInteger等。在java原创 2022-06-06 17:22:24 · 109 阅读 · 0 评论 -
软件构造博客2----软构笔记
我们进行软件构造的时候要先搞清楚:软件构造的对象是什么,如何刻画;然后再关注如何构造。原创 2022-06-01 22:14:34 · 133 阅读 · 0 评论 -
软件构造博客1----GitHub与IDEA的联动
前言本学期哈工大计算学部开设软件构造这门课程,作业要求提交在GitHub上面。GitHub是一个方便的代码托管平台,在代码托管,版本控制等方面有着十分重要的作用。鉴于老师的要求允许使用IDEA来完成作业,我在这里介绍一下GitHub和IDEA的连接方法,图形化界面方便操作,更加快捷,适合新手小白上手。使用过程一.设置远程仓库由于实验老师在GitHub上为我们提供了提交的仓库,此处暂时不对GitHub创建仓库等操作进行进一步讲解,具体我可能会在后面的博客中给出讲解。二.将本地内容提交到Gi原创 2022-05-17 20:05:22 · 176 阅读 · 1 评论