Comment On The Criticism Of The GangOfFour for the DesignPatternsBook. See also CrudIsForBeginners ---- '''Criticism''' * Failed to provide clear criteria for when to use what pattern, and explain the criteria for the rules or choices (such as cost/benefit analysis of find & change costs or something from CategoryMetrics). * Focused mostly on SystemsSoftware, mostly ignoring database and CrudScreen-centric applications [or at least a wider sampling]. ---- This criticism on the GangOfFour page of the book they wrote has lead to a lot of discussion. I want to look at it in a different way - what do the authors say which is relevant. Any criticism can be made of a book and the motivation of the critic maybe that they were looking for something and did not find it. Maybe the authors did not supply what is looked for, either because they chose not to, or simply did not think of that. Maybe what they did supply can be used to build what is wanted, or else another starting point is needed. So what do the authors say? ---- From the Preface: ''We don't consider this collection of design patterns complete and static; it's more a recording of our current thoughts on design. We welcome comments on it, whether criticisms of our examples, references and known uses we've missed, or design patterns we should have included.'' ---- From the Introduction (P.2): ''Despite the book's size, the design patterns in it capture only a fraction of what an expert might know. ... It doesn't have any application domain specific patterns. It doesn't tell you how to build user interfaces, how to write device drivers, or how to use an object oriented database. Each of these areas has its own patterns, and it would be worthwhile for someone to catalog those too.'' ---- They set out to do what they have done. They don't claim completeness and they don't aim to cover application areas. It is clear that other people have criticised their work - see ShowTrialOfTheGangOfFour. I am interested in the use of the word 'expert' in their paragraph. The DreyfusModel for expertise is discussed by AndyHunt in PragmaticThinkingAndLearning. One lesson to come out of that work is that expertise cannot be captured in a set of rules. The GangOfFour have given us a lot of material. Different people will develop their expertise from it in different ways. There is some more relevant discussion on SubjectMatterExpert, DismissalOfSubjectExperts. It is interesting to compare the discussion on GangOfFour with the discussion of the RefactoringBook - see RefactoringImprovingTheDesignOfExistingCode - where a lot of people have commented on detailed reading of the book. This has lead me on to look also at RefactoringToPatterns. -- JohnFletcher ---- CategoryPattern CategoryLearningMethods