Cpp Coding Standards/DESIGN

From Apache OpenOffice Wiki
Jump to: navigation, search

Design (DESIGN) - Summary

General design rules.

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