Cpp Coding Standards/DESIGN

From Apache OpenOffice Wiki
< Cpp Coding Standards
Revision as of 12:38, 29 November 2006 by Np (Talk | contribs)

Jump to: navigation, search

Design

General design rules.


Summary

NoCyclicDependencies (NoVirt)

Avoid cyclic dependencies.

Details

DependencyInversionPrinciple (NoVirt)

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

NoPrematureGeneralization (NoVirt)

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

GlobalDataInit (NoVirt)

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 (NoVirt)

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.


Personal tools