Working classes -- Code complete reading notes(6)
良好的类接口:
1、类的接口应该展现一致的抽象层次
2、一定要理解类所实现的抽象是什么
3、提供成对的服务
4、把不相关的信息转移到其它类去
5、尽可能的让接口编程,而不是表达语义
6、谨防在修改时破坏接口的抽象
7、不要添加和接口抽象不一致的公用成员
8、同时考虑抽象性和内聚性
良好的封装:
1、尽可能的限制类和成员的可访问性
2、不要公开暴露成员数据
3、避免把私用的实现细节放入类的接口中
4、不要对类的使用者进行任何假设
5、避免使用友元
6、不要因为一个子程序仅使用公共成员而把它写成公共接口
7、让阅读代码比编写代码更方便
8、要格外警惕从语义上破坏封装性
9、留言过于紧密的耦合
避免创建万能类
消除无关紧要的类
避免用动词命名的类