【1】在编程序时,你是在为你针对某个问题的解决方案中的思想建立起一种具体表示。让程序的结构尽可能地直接反映这些思想
【a】如果你能把“它”看成一个独立的概念,就把他做成一个类;
【b】如果你能把“它”看成一个独立的实体,就把它做成某个类的一个对象;
【C】如果两个类有共同的界面,将此界面做成一个抽象类;
【D】如果两个类的实现有某些显著的共同的东西,将这些共性做成一个基类;
【E】如果一个类是一种对象的容器,将它做成一个模版。
【F】如果一个函数实现对某容器的一个算法,将它实现为对一族容器可用的模版函数;
【G】如果一组类,模版等互相之间有逻辑联系,将它们放进一个,名字空间里;
【2】在你定义一个并不是实现某个像矩阵或复数这样的数学对象的类时,或者定义一个低层的类型如连接表的时候
【A】不要使用全局数据(使用成员)
【B】不要使用全局函数。
【C】不要使用公共数据成员
【D】不要使用友元,除非为了避免[a]或[c]。
【E】不要在一个类里面放“类型域”;采用虚函数;
【F】不要使用在线函数,除非作为效果显著的优化