Preface
FromObjectOrientationtoPatternstoTrueObjectOrientation
FromArtificialIntelligencetoPatternstoTrueObjectOrientation
ANoteAboutConventionsUsedinThisBook.
Feedback
NewintheSecondEdition
Acknowledgments
PARTIAnIntroductiontoObject-OrientedSoftware
Development
Chapter1TheObject-OrientedParadigm
Overview
BeforetheObject-OrientedParadigm:FunctionalDecomposition
TheProblemofRequirements
DealingwithChanges:UsingFunctionalDecomposition
DealingwithChangingRequirements
TheObject-OrientedParadigm
Object-OrientedProgramminginAction
SpecialObjectMethods
Summary
ReviewQuestions
Chapter2TheUML--TheUnifiedModelingLanguage
Overview
WhatIstheUML?
WhyUsetheUML?
TheClassDiagram
InteractionDiagrams
Summary
ReviewQuestions
PARTIITheLimitationsofTraditionalObject-OrientedDesign
Chapter3AProblemThatCriesOutforFlexibleCode
Overview
ExtractingInformationfromaCAD/CAMSystem
UnderstandtheVocabulary
DescribetheProblem
TheEssentialChallengesandApproaches
Summary
ReviewQuestions
Chapter4AStandardObject-OrientedSolution
Overview
SolvingwithSpecialCases
Summary
ReviewQuestions
PARTIIIDesignPatterns
Chapter5AnIntroductiontoDesignPatterns
Overview
DesignPatternsArosefromArchitectureandAnthropology
MovingfromArchitecturaltoSoftwareDesignPatterns
WhyStudyDesignPatterns?
OtherAdvantagesofStudyingDesignPatterns
Summary
ReviewQuestions
Chapter6TheFacadePattern
Overview
IntroducingtheFacadePattern
LearningtheFacadePattern
FieldNotes:TheFacadePattern
RelatingtheFacadePatterntotheCAD/CAMProblem
Summary
ReviewQuestions
Chapter7TheAdapterPattern
Overview
IntroducingtheAdapterPattern
LearningtheAdapterPattern
FieldNotes:TheAdapterPattern
RelatingtheAdapterPatterntotheCAD/CAMProblem
Summary
ReviewQuestions
Chapter8ExpandingOurHorizons
Overview
Objects:TheTraditionalViewandtheNewView
Encapsulation:TheTraditionalViewandtheNewView
FindWhatIsVaryingandEncapsulateIt
CommonalityandVariabilityAnalysisandAbstractClasses
TheQualitiesofAgileCoding
Summary
ReviewQuestions
Chapter9TheStrategyPattern
Overview
AnApproachtoHandlingNewRequirements
TheInternationalE-CommerceSystemCaseStudy:InitialRequirements
HandlingNewRequirements
TheStrategyPattern
FieldNotes:UsingtheStrategyPattern
Summary
ReviewQuestions
Chapter10TheBridgePattern
Overview
IntroducingtheBridgePattern
LearningtheBridgePattern:AnExample
AnObservationAboutUsingDesignPatterns
LearningtheBridgePattern:DerivingIt
TheBridgePatterninRetrospect
FieldNotes:UsingtheBridgePattern
Summary
ReviewQuestions
Chapter11TheAbstractFactoryPattern
overview
IntroducingtheAbstractFactoryPattern
LearningtheAbstractFactoryPattern:AnExample
LearningtheAbstractFactoryPattern:ImplementingIt
FieldNotes:TheAbstractFactoryPattern
RelatingtheAbstractFactoryPatterntotheCAD/CAMProblem
Summary
ReviewQuestions
PARTIVPuttingItAllTogether:ThinkinginPatterns
Chapter12HowDoExpertsDesign?
Overview
BuildingbyAddingDistinctions
Summary
ReviewQuestions
Chapter13SolvingtheCAD/CAMProblemwithPatterns
Overview
ReviewoftheCAD/CAMProblem
ThinkinginPatterns
ThinkinginPatterns:Step1
ThinkinginPatterns:Step2a
ThinkinginPatterns:Step2b
ThinkinginPatterns:Step2c
ThinkinginPatterns:Steps2aand2bRepeated(Facade)
ThinkinginPatterns:Steps2aand2bRepeated(Adapter)
ThinkinginPatterns:Steps2aand2bRepeated(AbstractFactory)
ThinkinginPatterns:Step3
ComparisonwiththePreviousSolution
Summary
ReviewQuestions
PARTVTowardaNewParadigmofDesign
Chapter14ThePrinciplesandStrategiesofDesign
Patterns
Overview
TheOpen-ClosedPrinciple
ThePrincipleofDesigningfromContext
ThePrincipleofEncapsulatingVariation
AbstractClassesvs.Interfaces
ThePrincipleofHealthySkepticism
Summary..
ReviewQuestions
Chapter15CommonalityandVariabilityAnalysis
Overview
CommonalityandVariabilityAnalysisandApplicationDesign
SolvingtheCAD/CAMProblemwithCVA
Summary
ReviewQuestions
Chapter16TheAnalysisMatrix
Overview
IntheRealWorld:Variations
TheInternationalE-CommerceSystemCaseStudy:HandlingVariation
FieldNotes
summary
ReviewQuestions
Chapter17TheDecoratorPattern
Overview
ALittleMoreDetail
TheDecoratorPattern
ApplyingtheDecoratorPatterntotheCaseStudy
AnotherExample:Input/Output
FieldNotes:UsingtheDecoratorPattern
TheEssenceoftheDecoratorPattern
Summary
ReviewQuestions
PARTVIOtherValuesofPatterns
Chapter18TheObserverPattern
Overview
CategoriesofPatterns
MoreRequirementsfortheInternationalE-CommerceCaseStudy
TheObserverPattern
ApplyingtheObservertotheCaseStudy
FieldNotes:UsingtheObserverPattern
Summary
ReviewQuestions
Chapter19TheTemplateMethodPattern
Overview
MoreRequirementsfortheInternationalE-CommerceCaseStudy
TheTemplateMethodPattern
ApplyingtheTemplateMethodtotheInternationalE-CommerceCaseStudy
UsingtheTemplateMethodPatterntoReduceRedundancy
FieldNotes:UsingtheTemplateMethodPattern
Summary
ReviewQuestions
PARTVIIFactories
Chapter20LessonsfromDesignPatterns:Factories
Overview
Factories
TheUniversalContextRevisited
FactoriesFollowOurGuidelines
LimitingtheVectorsofChange
AnotherWaytoThinkAboutIt
DifferentRolesofFactories
FieldNotes
Summary
ReviewQuestions
Overview
Chapter21TheSingletonPatternandtheDouble-Checked
LockingPattern
IntroducingtheSingletonPattern
ApplyingtheSingletonPatterntotheCaseStudy
AVariant:TheDouble-CheckedLockingPattern
Reflections
FieldNotes:UsingtheSingletonandDouble-CheckedLockingPatterns
summary
ReviewQuestions
Chapter22TheObjectPoolPattern
Overview
AProblemRequiringtheManagementofObjects
TheObjectPoolPattern
Observation:FactoriesCanDoMuchMoreThanInstantiation
Summary
ReviewQuestions
Chapter23TheFactoryMethodPattern
Overview
MoreRequirementsfortheCaseStudy
TheFactoryMethodPattern
FactoryMethodPatternandObject-OrientedLanguages
FieldNotes:UsingtheFactoryMethodPattern
Summary
ReviewQuestions
Chapter24SummaryofFactories
Overview
StepsintheSoftwareProcess
ParallelsinFactoriesandXPPractices
ScalingSystems
PARTVIIIEndingsandBeginnings
Chapter25DesignPatternsReviewed:ASummation
andaBeginning
Overview
ASummaryofObject-OrientedPrinciples
HowDesignPatternsEncapsulateImplementations
CommonalityandVariabilityAnalysisandDesignPatterns
DecomposingaProblemDomainintoResponsibilities
PatternsandContextualDesign
RelationshipsWithinaPattern
DesignPatternsandAgileCodingPractices
FieldNotes
Summary
ReviewQuestions
Chapter26Bibliography
DesignPatternsExplained:TheWebSiteCompanion
RecommendedReading
RecommendedReadingforJavaProgrammers
RecommendedReadingforC++Programmers
RecommendedReading,forCOBOLProgrammers
RecommendedReadingonextremeProgramming
RecommendedReadingonGeneralProgramming
PersonalFavorites..
Index