Difference between revisions of "Cpp Coding Standards/DESIGN"

From Apache OpenOffice Wiki
Jump to: navigation, search
m (Avoid Global Data <span id="NoGlob">(NoGlob)</span>)
Line 25: Line 25:
  
 
==== Avoid Global Data <span id="NoGlob">(NoGlob)</span> ====
 
==== Avoid Global Data <span id="NoGlob">(NoGlob)</span> ====
Minimize the use of global data. For objects in global scope that are meant to be local to a class' implementation use an anonymous namespace.
+
Minimize the use of global data. For objects in global scope that are meant to be local to the implementation of a class use an anonymous namespace.
  
 
[[/NoGlob|Details]]
 
[[/NoGlob|Details]]

Revision as of 13:55, 16 February 2007

Topic-Id: DESIGN

General design rules.


Summary

No Cyclic Dependencies (CyclDep)

Avoid cyclic dependencies.

Details

Dependency Inversion Principle (DIP)

Use the dependency inversion principle. Prefer to define functionality in abstract interfaces and to inherit from them. Avoid state in abstract classes.

Details

No Premature Generalization (PremGen)

As a rule of thumb, don't generalize before the second occurrence and no later than the third.

Details

Global Data Initialization (GlobInit)

Avoid cross module dependencies when initializing global data. Never let a global object's initialization depend on another global object in a different compilation unit.

Details

Avoid Global Data (NoGlob)

Minimize the use of global data. For objects in global scope that are meant to be local to the implementation of a class use an anonymous namespace.

Details


Personal tools