I always believed OO design patterns to be necessary to know and understand by all software developers, I didn’t like the fact that sometimes design was forced into a known design pattern just because a pattern existed ( and wrote about it ). After seen patterns abused time after time I lost faith and I was frustrated by the fact that the simplified examples of the design patterns didn’t seem to solve the problems I’ve tried to solve. After a co-worker recommended Head First Design Patterns I read...