设计模式案例.ppt
DesignPatterns,ArchitecturalPatternsPascalMolliUniversityHenri-PoincaréPascal.Molli@loria.fr1
Bibliography…??ASystemofPattern??BushmannetAll??DesignPatterns??GammaetAll??ConcurrentProgramminginJava??D.Lea.??DistributedObjects??OrfalietAll??ApplyingUMLandPatterns??Larman2
Patterns…??Patternshelpyoubuildonthecollectiveexperienceofskilledsoftwareengineers.????Theycaptureexisting,well-provenexperienceinsoftwaredevelopmentandhelptopromotegooddesignpractice????Everypatterndealswithaspecific,recurringprobleminthedesignorimplementationofasoftwaresystem????Patternscanbeusedtoconstructsoftwarearchitectureswithspecificproperties…??3
BecomingaChessMasterFirstlearnrulesandphysicalrequirementse.g.,namesofpieces,legalmovements,chessboardgeometryandorientation,etc.Thenlearnprinciplese.g.,relativevalueofcertainpieces,strategicvalueofcentersquares,powerofathreat,etc.However,tobecomeamasterofchess,onemuststudythegamesofothermastersThesegamescontainpatternsthatmustbeunderstood,memorized,andappliedrepeatedlyTherearehundredsofthesepatterns4
BecomingaSoftwareDesignerMasterFirstlearntherulese.g.,thealgorithms,datastructuresandlanguagesofsoftwareThenlearntheprinciplese.g.,structuredprogramming,modularprogramming,objectorientedprogramming,genericprogramming,etc.However,totrulymastersoftwaredesign,onemuststudythedesignsofothermastersThesedesignscontainpatternsmustbeunderstood,memorized,andappliedrepeatedlyTherearehundredsofthesepatterns5
SoftwareArchitectureAsoftwarearchitectureisadescriptionofthesubsystemsandcomponentsofasoftwaresystemandtherelationshipsbetweenthem.Subsystemsandcomponentsaretypicallyspecifiedindifferentviewstoshowtherelevantfunctionalandnon-functionalpropertiesofasoftwaresystem.Thesoftwaresystemisanartifact.Itis