面向对象 —— 类设计(九) —— 类设计的内在一致性

类设计的内在一致性,可以理解为“逻辑一致性”。所谓逻辑一致性,比如说,网络上流传甚广的“俗话说,俗话又说”系列,“宰相肚里”vs “有仇不报非君子”。

  • (1)同一类内部;
  • (2)继承关系的父类与子类之间。

一个类定义是一个整体,它描述了一种程序对象。类定义比较复杂,其中可以有许多成分,特别是可能定义了许多方法,每个方法定义是类定义中的一个独立片段,编程语言对不同方法之间的关系没有任何约束,也不对这样一组方法定义做任何相互关系上的检查。但是,作为同一个类定义的成分,这些方法需要相互协调,保持一致,才能保证所定义的程序有意义。这件事需要编程序的人考虑和保证。

以持有尾部节点的单链表为例,存在两种可能的设计,

  • 1.要求在表空的时候,_head_rear 的值都是 None
  • 2.只要求这时,_headNone

基于这两种设计都能正确地实现这个类,但是一旦选定了一种设计,类中的所有方法都必须遵照这种设计来定义,包括所有的插入和删除操作。

一般情况下,在设计一个类时总需要考虑一套统一的规则。类的初始化方法建立起的对象应满足这些规则,操作也不能破会规则,这样定义的类才是有效的。

当然不同规则可能影响类定义的细节和复杂程度,采用后一种设计更为简单,需要维护的关系少一点。还考虑到基类的已有设计,尽可能逾期保持一致,以便更多地利用已有的功能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

五道口纳什

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值