软件构造课堂重点4

可复用原因:1.降低成本和开发时间

2.经过充分的测试可靠稳定

                        3.标准化,在不同应用中保持一致

白盒复用:源代码可见,可修改和拓展

黑盒复用:源代码不可见,不能修改

体现在java编程:灵活的复用=委派+继承

 

子类型多态:客户端可用统一的方式处理不同类型对象

LSP:

子类可以增加方法,不能删

前置条件不能强化,后置条件不能弱化

不变量保持/更强

子类一定要实验抽象类中未实现的方法

子类型方法参数:逆变

(即不变或越来越抽象)

子类型返回值:协变

异常类型:协变

子类可以任意取代父类,由父类到子类spec越来越具体

设计可复用类:

1.设计和信息隐藏

2.继承和重写

3.多态、子类型多态、重载

子类若只需要复用父类小部分更倾向于委派(delegation),避免大量无用方法。

CRP:利用接口和委派编程(共性和个性混杂在一起)

白盒框架:没有委派,只有继承关系。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值