DesignPatternsarealsoafuninvestigationofhowaproblemcanbesolvedinmanydifferentways,withvaryingdegreesoftechnicalsophisticationanddifferentsortsoftrade-offs.Somepatternsaremoreorlessessentialandunavoidable,whereasotherpatternsaremoreofascientificcuriosity(butneverthelesswillbediscussedinthisbook,sinceI’macompletionist).Readersshouldbeawarethatcomprehensivesolutionstocertainproblems(e.g.,theObserverpattern)typicallyresultinoverengineering,thatis,thecreationofstructuresthatarefarmorecomplicatedthanisnecessaryformosttypicalscenarios.Whileoverengineeringisalotoffun(hey,yougettoreallysolvetheproblemandimpressyourcoworkers),it’softennotfeasible.
1