抽象接口

8.1软件应变-随需而变,适者生存

1.实现数据抽象,将接口与实现分离开来

2. 抽象接口描述了一个类最本质的行为特征

另一方面,具体实现随时可能变动,隐藏它们可以保证这种变动不会涉及客户代码

3.过度设计会带来不必要的复杂和效率损失

4.软件之变,体现在适应变化的能力

5.许多编程思想包括OOP的思想都是以提高应变力为主题的,抽象与封装便是典型代表,抽象一个对象模型即是将一类对象最本质

而最不易变化的部分提炼出来,而封装,准确地说是信息隐藏,则是将非本质,容易变化的部分隐藏起来,从而将一个类化分为阴阳两面。

由于变化的部分发生在阴面,对外屏蔽的。因而修改该面毫无畏惧客户之忧,因此提高软件的抗变能力,有些人误认为信息隐藏是出于软件安全

,实乃似是而非之见。

6.软件的变化大致分两种:一种是出于内在需求而作的结构性变化,一种是出于外在需求而作的功能性变化通常以满足客户需求为目的,理想的

抽象和封装应能避免第一类变化对于客户代码的影响,也能大限度降低第二种变化的副作用。

7.信息隐藏虽然能将抽象接口和具体实现分离,但任然封装在同一个类中, bridage则让二者彻底解耦


8。应变力强不等于代码不改变,能保证代码永远不改变的软件有更好的归宿-退化为硬件,进化为人件。

9.抽象的模块因稳定而少需修改,因普适而便与扩展,从而更容易复核开闭原则,诚然,100%不修改源代码过于理想化,但越是基础的代码,越是

核心的代码应该遵循。大家平时使用的类库,框架就是最好的例子。如果库提供的服务不能满足需求,客户一般通过接口,多态,继承,合成等技巧

扩展相应类,如果框架提供的服务不能满足要求,客户一般通过各种扩展点嵌入新模块。无论哪种情况需要修改代码的客户代码,而不是提供服务的

基础代码


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

tof21

支持原创

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值