Avoid!
• Watch for long argument lists
• Break it down into using relationships passing objects (as
const references whenever possible) to functions
• Don’t repeat yourself!
• If a piece of code is recurring in many operations, pull it
out to be in a common base class
• Don’t extend functionality by building derived
classes
• If an interface element is essential to a class it should be in
the base class – not added onto the end
• If you are adding operations by inheriting, you might want
to rethink your design!