代码大全-良好的类接口

类的接口分为两部分

  1. 良好的抽象(Good Abstraction)
  2. 良好的封装(Good Encapsulation)

一、良好的抽象

  类的接口应该展现一致的抽象层次。每一个类应该实现一个ADT,并且仅仅实现这个ADT。

  一定要理解类所实现的抽象是什么。理解对应的ADT。

  提供成对的服务,比如Add、Delete。On、Off等。不要盲目创建相反的操作,但是得考虑是否有需要

  把不相关的信息转移到其他类中。当发现类中一半的方法在使用该类的一半数据,另一半的方法在使用另外一半的数据,这个时候已经把两个类混在一起了,需要拆分。

  尽可能的让接口可编程,而不是语义表达。可编程的接口部分由接口中的数据类型和其他属性构成,编译器能强制要求他们,语义部分则由“本接口会被怎样使用”组成,如FuntionA必须在FunctionB调用之前进行调用。

  不要添加与接口抽象不一致的公用成员,当要在类中添加方法时,先问问“这个方法与现有接口的所提供的抽象一致吗?”

  同时考虑抽象性和内聚性,一个呈现很好抽象的类接口通常有很高的内聚性,反之亦然。如果发现某个类的内聚性很弱,也不知道该怎么修改,换一种方法:问问这个类是否表现为一致的抽象。

  

 二、良好的封装

  抽象通过提供一个可以让你忽略实现细节的模型来管理复杂度,而封装则用于强制组织让看到细节。

  尽可能的限制类和成员的可访问性。

  不要公开暴漏数据成员。

  避免把私有的实现细节放入类的接口中。

  不要对类的使用者做出任何假设。

  不要因为一个子程序里仅仅使用了公用子程序,就把它归入公开接口。要反问:把这个子程序暴漏给外界后,接口所展示的抽象性是否还是一致的。

转载于:https://www.cnblogs.com/Brake/p/Code-Complete-Good-Class-Interfaces.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值