C++ 类的设计规则
类是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 修饰
C++ 类的设计规则相关推荐
- 一文讲透非标品的商品类目设计
www.pmcaff.com 本文为作者 百转 于社区发布 只要做电商,商品类目设计就是绕不开的一环.好的类目设计能让供需双方更快.更好定义或找到所关心的商品,是整个电商体系的地基,是构建并链接各个模 ...
- c++矩阵类_数据结构-JavaScript矩阵类的设计与实现
矩阵是线性代数课学习的重点内容之一,也是线性代数常见工具之一,在应用数学.统计分析.计算机科学.计算机图像处理级物理等多学科中均有应用.矩阵主要是指数据的行列排列的形式,由行row与列col所组成,在 ...
- Java 设计模式 Day1 之面向抽象原则:抽象(abstract)类的设计与应用分析
文章目录 前言 一.抽象(abstract)类的设计要点 二.抽象类的应用实例 2.1.创建一个抽象类 2.2.创建抽象类非抽象子类 2.3.通过上转型对象调用子类方法 总结 前言 面向抽象原则是面向 ...
- android 类的设计,Android App的类响应式设计
导言 根据google的官方显示Android 4.0以上的设备已经有34.2%,由于国内很多的手机都没机会用上google play市场,所以国内市场的情况,得看类似于友盟的季度报告才知道了.个人觉 ...
- python如何设计工具类_Python面向对象 --- 类的设计和常见的内置方法
面向对象:一种基于面向过程的新的编程思想.也就是说面向对象是将功能等通过对象来实现,将功能封装进对象之中,让对象去实现具体的细节:这种思想是将数据作为第一位,而方法或者说是算法作为其次,这是对数据一种 ...
- 20条不该打破的设计规则
在设计中,我们常被允许.鼓励打破设计规则,这时你至少需要知道这些规则,才能正确的打破它们. 本文列出了一些基本的规则和技巧,从字体.排版到色彩.样式,涵盖了大部分设计中常见的错误,帮助你在设计中避免它 ...
- 【C++】特殊类相关设计
前言 在实际的应用场景中,不免会有一些特殊的设计要求存在.在C++中,由于三种不同的域,以及地址空间的大小或者申请方式不同,就衍生出了一些特殊的设计类方法. 何为特殊呢?即区别于普通类的设计. 上一篇 ...
- bga焊盘怎么做_焊接焊盘和BGA设计规则
焊接焊盘和BGA设计规则 阅读量 11235 发布时间 2019-10-26 随着电子产业的进步,PCB封装中BGA的应用越来越广范,但随之出现了一些问题点,我们先看看下面图示: 1)制作前原始设计B ...
- CAD电气工程图教程之布局方法和设计规则
我们在进行CAD电气工程图绘制的时候,一定要知道CAD电气工程图的设计规则和布局方法,今天小编就来给大家详细的介绍一下. CAD电气工程图的一般规则 1.电气图面的构成:边框线.图框线.标题栏.会签栏 ...
最新文章
- 爬虫之selenium爬取斗鱼网站
- VC连接SQL server2005
- Scala --- 第三章 数组相关操作
- FPGA之道(79)静态时序分析(五)外部接口的相关时序分析
- 找出数组中未出现的最小正整数
- java aspose重叠_Aspose.Words - 在特定位置合并两个文档
- python字符串(连载二)|字符串内置函数原来还可以这么玩!
- Python基础练习题,含答案解析
- 火山PC编辑框组件详解1
- 读《深入浅出设计模式》
- ubuntu nsight使用
- DTW(动态时间归整)算法的前世今生
- impala jdbc驱动jar包
- 2022卡塔尔世界杯来临,体育界最新创意二维码案例大盘点!
- 金融学习之十一——久期
- 呼伦贝尔草原行(5日自由行)
- ABAQUS子程序技术文档-UEL
- Android蓝牙打印服务,Android 模拟蓝牙打印机
- STM32F407高级定时器-死区时间研究-STM32CubeMX
- v-text与v-html,v-text,v-html等区别
热门文章
- iphone 如何运行android,如何在iPhone上运行Android双系统?
- k8s之ingress
- 算数运算符、算术表达式
- 临泉新汇英高中2021高考成绩查询,昨天,临泉这所学校为学子们举行了这种仪式.........
- 统信UOS专业版软件包的安装与使用
- 手把手教你搭建Kubernetes集群
- php ldap目录协议,PHP 通过LDAP协议,操作Windows Active Directory
- 计算机博士c类会议,我院研究生参加CSCWD国际学术会议(CCF C类)
- Feinstein Institute研究人员解码脑沟和白质区域的神经活动,预测手指运动和手部触觉刺激...
- Python 画图学习入门