*ShortMethods *OnceAndOnlyOnce *SevenPrinciplesOfSoftwareDevelopment *CompositePattern