软件构造第三章部分总结

一、数据类型

基本数据类型:只有值,没有ID,不能赋值为null =>immutable 在栈中分配内存
对象数据类型:有值和ID,部分mutable 部分immutable 在堆中分配内存

二、类型检查

1.静态类型检查:不考虑值,bug被发现在run之前=>在编译阶段进行检查;与特定值无关
(注:动态类型的语言也会有这个检查)
2.动态类型检查:非法参数(除0等),返回值错误,超出索引值,调用空对象的方法;针对特定值引起的错误来进行检查
3.没有检查:舍入、移出、浮点数NaN

三、可变性

先看一例:对变量赋值=>改变变量指向不同的值,而对list的改变=>改变内容时是在改变内部内容的引用
不变性:部编数据类型创建完成之后值不可再修改,这里提到一个final关键字 =>对不可变的引用提供了静态类型检查
final:1.final class不能被继承 2.final variable 不能改变值 3.final method不可以被子类重写

四、ADT

1.Creator: 产生新对象=>构造方法或是工厂方法
Producers:在已有对象的基础上产生新对象
Observers:输入抽象类型对象,返回其他类型
Mutator:改变对象
2. 设计原则:简单操作、内聚(单一职责)、操作集完备、不应该混合无关/通用的特征
3. RI:表示独立=>好的ADT应该是独立的 只有当我们明确ADT前置条件和后置条件的相关操作,调用者才知道可以依赖哪些内容;对于RI,现有调用者仅仅依赖其public方法,而不依赖private字段,因此我们的ADT可以不检查其他调用者的情况下进行更改
4.保持不变量:在任何时候都保持true ->由ADT来负责不变量,与客户端无关
表示泄漏RE:不仅影响不变性,也影响表示独立,无法不影响客户端的情况下改变内部表示=>策略:防御性拷贝
5.AF:表示空间R与抽象空间A之间存在映射关系 =>AF就是R与A之间映射关系的函数:是满射,未必单射,未必双射
R部分值非合法->在A中无映射值
6.测试ADT:checkRep()在所有可能改变rep的方法内都要检查,Observer方法可以不用,但建议检查
7.需要精确记录1.RI:rep中所有fields何为有效,对每一个fields以及多个fields之间进行条件限定 2.AF如何解释每一个R值,给出客户端看到的A值是什么 3.RE安全声明:给出理由,证明代码并未对外泄漏内部表示

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值