C++类和接口的设计原则探讨
本文的主要目的是介绍一些高质量的类和接口设计指南。这些准则不仅要保证设计和实现的类或接口本身具有高质量的代码,更重要的是,在工业领域,代码的更新和维护要尽可能不影响客户的活动,即保持二进制兼容和源代码兼容。希望这些指南可以帮助刚从学校进入工业领域的朋友,尽快适应更高标准的编程要求,提高设计能力。
本文讨论了C++类的设计。
提及总数
面向对象编程对于产生高质量、可维护的代码非常有帮助。面向对象编程的概念基于三个基本特征:封装、继承和多态。在C++中,类是面向对象编程概念的核心和具体形式。类通过私有成员体现“封装”,通过直接继承或组合体现“继承”,通过虚函数和动态绑定体现“多态”。类的设计质量直接决定了整个系统的质量。
从整体功能层面谈类设计有三个原则:
,单一责任原则(Single Responsibility Principle)
一个类作为一个整体应该只提供单一的服务。如果一个类提供了多种服务,那么它应该被拆分。相反,如果一个概念上的单一功能由几个类负责,那么这些类应该合并。
开/关原理(开/关原理)
设计和实现的类应该对扩展动作开放,对修改的动作关闭。也就是说,这个类应该允许扩展,但不允许修改。如果需要功能扩展,应该通过添加新的类来实现,而不是修改原类的代码。新类不仅可以通过直接继承来添加,也可以通过组合来添加。
,最小惊奇原则(Least Surprise Principle)
重载函数或子类实现父虚函数时,应该基本保持函数原来的预期功能。例如:
class Pet {
public:
virtual Talk()= 0;
};
class Cat : public Pet {
public:
void Talk() { cout
0条评论