Difference between revisions of "Cpp Coding Standards/DESIGN"
From Apache OpenOffice Wiki
m |
m (Cpp Coding Standards/Topics/DESIGN moved to Cpp Coding Standards/Design: Improve Cpp_Coding_Standards structure.) |
(No difference)
|
Revision as of 12:08, 28 November 2006
Contents
Design
General design rules.
Summary
NoCyclicDependencies
Avoid cyclic dependencies.
DependencyInversionPrinciple
Use the dependency inversion principle. Prefer to define functionality in abstract interfaces and to inherit from them. Avoid state in abstract classes.
NoPrematureGeneralization
As a rule of thumb, don't generalize before the second occurrence and no later than the third.
GlobalDataInit
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.
AvoidGlobalData
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.