C++ 类的设计规则

来源:互联网 发布:新淘宝网怎样充话费 编辑:程序博客网 时间:2024/05/22 06:57

 

         类是C++ 语言的核心概念,要想写出高质量的C++代码,最重要的事情就是把类设计好,下面介绍一些C++类设计的基本规则。

 

1 命名

         类名一般是名词,用大白话说就是类一般都是个“东西”,根据我的命名原则,业务逻辑中涉及到的所有“东西”在程序中都应该有一个对应的类。

         类的方法一般是动词,或者动宾式组合,类方法的隐含的主语就是类自己。

举个例子来说,类名是:CHUMAN (人),则根据业务逻辑,CHUMAN的方法可以有打、踢、吃、笑等动作。

这里再次强调一下命名原则的一个推论:如果程序中类的某些数据和它的名字在逻辑上是无关的,则代表类的命名有问题;如果无法重命名,或者找不到合适的名字,则意味着类需要重新设计。

 

2 类的分类

         类可分为数据类和业务类两大类,所谓的数据类,有点类似结构体,单纯是为了保存数据,在多线程情况下,可以用来线程间数据通讯;业务类就是功能模块,业务类分单线程模式和多线程模式,它们的接口几乎一样,区别在于核心业务处理方法是否阻塞。

 

3 类的四段式

         所有的类都可以抽象成四部分:OPEN、CLOSE、CONFIG 和 RUN。OPEN 和 CLOSE 一般就是初始化和释放,CONFIG 就是对行为方式进行配置,而 RUN 就是执行业务逻辑。

         OPEN里面一般是分配内存、创建句柄等工作,对应的 CLOSE 是释放内存和销毁句柄。CONFIG 和 RUN 中仅适用内存,不涉及任何申请和释放内存等操作。

         对于多线程业务类,会用 START/STOP替代 OPEN/CLOSE,在 START 中创建线程,在STOP 终止线程。

 

4 数据保护

         类中所有数据都应该用PRIVATE 或 PROTECTED 修饰,而严禁用 PUBLIC 修饰,这就是所谓数据保护原则。

 

5 定义顺序

         建议先定义方法,后定义数据,由于方法是 PUBLIC 的,所以类的定义顺序建议是 PUBLIC 方法,后PRIVATE 数据。举个例子:

Class C

{

Public:

         Func1();

         Func2();

Private:

         Inta;

         Intb;

};

 

6 多态注意事项

         A基类的析构函数要定义为虚函数

         B基类的数据最好用 PROTECTED 修饰

 

原创粉丝点击