While the word "principle" is popular, there is really a continuum of guidelines ranging from the PrinciplesOfObjectOrientedDesign (aka OoDesignPrinciples) which are rigorous and provable, through suggestions that will almost always help keep you out of trouble, down to heuristics that sometimes help. This page is an attempt to bring together some of these less formal guidelines. ---- * SamuraiPrinciple: return a valid value or throw an exception * UseTheStaticTyping: pass around specific objects, not generic ones * NullObject: use a sentinel object instead of null, and banish the NullPointerException ---- CategoryModellingLawsAndPrinciples