C++编程规范之33用小类代替巨类

摘要:

    分而治之:小类更易于编写,更易于保证正确、测试和使用。小类更有可能适用于各种不同的情况。应该用这种小类体现简单概念,不要用大杂烩式的类,它们要体现的概念既多又复杂。

    设计花哨的大类,是刚开始进行面向对象设计时常犯的典型错误。能够毕其功于一役,让一个类提供完整和复杂的功能,当然是很诱人的。但是,设计易于组合的更小的、尽量小的类,才是实践中更为成果的方法,这对任何系统都适用,原因为:

    1.      小的类只体现了一个概念,粒度层次恰到好处。而巨类则很可能体现了几个不同的概念,使用这样的类将增加他人的脑力消耗。

    2.      小的类更易于理解,被人理解和被人重用的可能性也越大。

    3.      下的类更易于部署。而巨类必须经常以一个笨重而又不可分的单位来部署。

    4.      巨类会削弱封装性。如果类有许多不需要成为成员的成员函数(因为类的私有实现存在不必要的可见性),那么类的私有数据成员将变得与公用变量几乎一样糟糕。

    5.      居类通常是因为试图预测和提供完整的问题解决方案而出现的,实践中,这种类从来都没有真正成功过。人们的需求总是在变化的,有事需要更多,有时又想要更少。

    6.      巨类更难保证正确和错误安全,因为它们经常要应付多种职责。

时间: 2024-09-29 10:17:05

C++编程规范之33用小类代替巨类的相关文章

11个PHPer必须要了解的编程规范_php技巧

本文将讨论常用的良好的代码习惯,或者称为代码规范,在PHP领域. 1,错误报告开启 错误报告是在PHP中一个非常有用的功能,应同时在开发阶段启用. 这可以帮助我们确定我们的代码中的问题. 最常用的功能是"E_ALL",这有助于我们发现所有的警告和严重错误. 必须指出的是,我们把我们的代码投入上线前,我们应该关闭这个功能提示,否则会在浏览器上的暴漏所有潜在错误及警告. 2,使用DRY原则 'Do not Repeat Yourself',DRY原则指的是不要重复你的代码.. 这个概念是一

JAVA 编程规范

编程|规范 1. 应用范围 本规范应用于采用J2EE规范的项目中,所有项目中的JAVA代码(含JSP,SERVLET,JAVABEAN,EJB)均应遵守这个规范.同时,也可作为其它项目的参考. 2. 设计类和方法 2.1 创建具有很强内聚力的类 方法的重要性往往比类的重要性更容易理解,方法是指执行一个统一函数的一段代码.类常被错误的视为是一个仅仅用于存放方法的容器.有些开发人员甚至把这种思路作了进一步的发挥,将他们的所有方法放入单个类之中. 之所以不能正确的认识类的功能,原因之一是类的实现实际上

C#编程规范和惯例

编程|规范 谁都会写代码!几个月的编程经验可以让你写出"可运行应用程序".让它可运行容易,但是以最有效率的方式编码就需要下更多的功夫! 要知道,大多数程序员在写"可运行代码,"而不是"高效代码".我们在这个指南课程前面提到,你想成为你们公司"最尊贵的专业人员"吗?写"高效代码"是一项艺术,你必须学习和实践它. 命名惯例和规范 注记 : Pascal 大小写形式-所有单词第一个字母大写,其他字母小写.Came

IDesign C#编程规范(二)

编程|规范 续之一,小鸡射手接着翻译了IDesign编码规范的第二章前部. 2 编码惯例 Coding Practices 1. 避免在一个文件中放多个类. Avoid putting multiple classes in a single file. 2. 一个文件应该只对一个命名空间提供类型.避免在同一文件中有多个命名空间. A single file should only contribute types to a single namespace. Avoid having mult

Dojo Javascript编程规范

前言 相当不错的 Javascript 编程风格规范,建议大家采用此规范编写 Javascript.原文链接:http://dojotoolkit.org/developer/StyleGuide . 翻译(Translated by):i.feelinglucky{at}gmail.com from http://www.gracecode.com ,转载请注明出处.作者和翻译者,谢谢配合. 本文地址:http://code.google.com/p/grace/wiki/DojoStyle

IOS团队编程规范

本文讲的是IOS团队编程规范,需求是暂时的,只有变化才是永恒的,面向变化编程,而不是面向需求编程. 不要过分追求技巧,降低程序的可读性. 简洁的代码可以让bug无处藏身.要写出明显没有bug的代码,而不是没有明显bug的代码. 先把眼前的问题解决掉,解决好,再考虑将来的扩展问题. 一.命名规范 1.统一要求 含义清楚,尽量做到不需要注释也能了解其作用,若做不到,就加注释,使用全称,不使用缩写. 2.类名 大驼峰式命名:每个单词的首字母都采用大写字母 ==例:== MFHomePageViewCo

《C++编程规范:101条规则、准则与最佳实践》——第2章设计风格设计风格 C++编程规范:101条规则、准则与最佳实践 复杂性啊,愚人对你视而不见,实干家受你所累。 有些人避而远之。惟智者能够善加消除。 ——Alan Perlis 我知道,但是却又忘记了Hoare的至理名言:不成熟的优化是程

第2章设计风格 C++编程规范:101条规则.准则与最佳实践 复杂性啊,愚人对你视而不见,实干家受你所累. 有些人避而远之.惟智者能够善加消除. --Alan Perlis 我知道,但是却又忘记了Hoare的至理名言:不成熟的优化是程序设计中的万恶之源. --Donald Knuth[1] The Errors of TeX[Knuth89] 完全区分设计风格与编码风格是非常困难的.我们将一般在实际编写代码时才用得到的条款留到下一部分介绍. 本部分集中讨论适用面比一个特定的类或者函数更广的原则和

写给大家看的编程规范

(本文参加 2014 CSDN博文大赛,谢谢.) [文章摘要]        "没有规矩,不成方圆",在实际的软件开发项目中,做任何事情都不是随心所欲的,我们编写代码需要遵守项目组约定的编程规范.很遗憾,在学校的计算机课程中,重在教导学生实现一定的程序功能,对程序的编写规范很少提及,这也就导致了从学校毕业踏上工作岗位之后一段艰辛的学习过程.        本文根据自身的软件开发实践,对实际的软件开发项目中编写C语言和SQL语言程序时所需遵守的规范进行了详细的介绍,旨在让广大即将从事软件

实现高效Java编程规范的十一条基础规则

编程|规范 本文介绍的Java规则的说明分为5个级别,级别1是最基本也是最重要的级别,在今后将陆续写出其他的规则.遵守了这些规则可以提高程序的效率.使代码有更好的可读性等. (1) 避免使用NEW关键字来创建String对象 把一个String常量copy到String 对象中通常是多余.浪费时间的. Public class test{ Public void method(){ System.out.print (str); } private String str = new String