软件构造复习1

软件构造复习1

1 Override与Overload

在这里插入图片描述
可以看到重载必须满足的特点是:与原方法要么参数数量不同,要么参数类型不同,要么这两者都不同。对于返回值,异常和方法是public还是private都没有要求。
而对于“复合要求的”重写(override)必须满足:LisKov原则:1.返回值和原函数类型一样或是子类型,2参数是和原函数类型一样或是父类型,3不能抛出更宽泛的异常,可以抛出原异常或其子类,也可以不抛出异常。

注:协变:可以理解为变得具体(子类)
反协变:可以理解为变得抽象(父类)
参数类型反协变,返回值类型协变
注:在JDK1.5以后override允许上述关于返回值的要求但是不允许改变参数。

2 Spec的强弱

泛泛而言若干spec1比spec2强表明下属条件至少拥有一条:
  1. 前置条件更弱

  2. 后置条件更强(在满足spec2前置条件的前提下)

    如果可以用spec1替换spec2但是减少了client的要求,家中有了编程人员的任务量,可以认为spec1比spec2强。

3 SCM和VCS

软件配置管理 SCM(Software Configuration Management):追踪和控制软件的变化。包括修订控制和基线的建立。软件配置项 SCI(Software Configuration Item):软件中发生变化 的基本单元(例如:文件);基线:软件持续变化过程中的“稳定时刻”(例如:对外发布的版 本);配置管理数据库 CMDB:存储软件的各配置项随时间发生变化的信息+基线;版本:为 软件的任一特定时刻(Moment)的形态指派一个唯一的编号,作为“身份标识”
古老的版本控制方法(Version Control System):通过复制文件并修改文件名;现在可以 回退、比较差异、备份版本历史、获取备份、合并,多个开发者之间共享和协同,记录每个 开发者的动作,便于审计;多个版本之间,形成线性或分支结构
本地版本控制系统(Local VCS):仓库存储于开发者本地机器无法共享和协作
集中式版本控制系统(Centralized VCS):仓库存储于独立的服务器,支持多开发者之 间的协作
分布式版本控制系统(Distributed VCS):仓库存储于独立的服务	器+每个开发者的本地 机器
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值