欢迎来到天天文库
浏览记录
ID:20216870
大小:746.50 KB
页数:33页
时间:2018-10-10
《design patterns 1》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、DesignPatterns--OOdesignPrincipleFoglightZhuhaiDashboardTeamAgendaWhatisObject-orienteddesignprincipleObject-orienteddesignprinciplesOpen-ClosedPrinciple(OCP)SingleResponsibilityPrinciple(SRP)LiskovSubstitutionPrinciple(LSP)InterfaceSegregationPrincipl
2、e(ISP)DependencyInversionPrinciple(DIP)ReferencesWhatisObject-orienteddesignprincipleObject-orienteddesignistheprocessofplanningasystemofinteractingobjectsforthepurposeofsolvingasoftwareproblem.Theexperienceandregularitywhenweuseobject-orienteddesignwh
3、ichcanhelpprogrammertocreateasystemthatiseasytomaintainandextendovertime.Object-orienteddesignprinciples(1)Fiveprinciplesofclassdesign:Open-ClosedPrinciple(OCP:开合原则)SingleResponsibilityPrinciple(SRP:单职原则)LiskovSubstitutionPrinciple(LSP:里氏置换原则)Interface
4、SegregationPrinciple(ISP:接口隔离原则)DependencyInversionPrinciple(DIP:依赖倒置原则)Object-orienteddesignprinciples(2)Threeprinciplesofpackagecohesion:ReuseReleaseEquivalencePrinciple(REP:重用发布等价原则)CommonClosurePrinciple(CCP:公共封闭原则)CommonReusePrinciple(CRP:公共复用原则)T
5、hreeprinciplesofpackagecoupling:AcyclicDependenciesPrinciple(ADP:无环依赖原则)StableDependenciesPrinciple(SDP:稳定依赖原则)StableAbstractionsPrinciple(SAP:稳定抽象原则)Object-orienteddesignprinciplesOpen-ClosedPrinciple(OCP)SingleResponsibilityPrinciple(SRP)LiskovSubsti
6、tutionPrinciple(LSP)InterfaceSegregationPrinciple(ISP)DependencyInversionPrinciple(DIP)Open-ClosedPrinciple(OCP)Softwareentities(classes,modules,functions,etc.)shouldbeopenforextension,butclosedformodificationAbstractionistheKeyEncapsulatetheVariationI
7、nheritanceandaggregationIs-AVSHas-AExampleviolatedOCPclassShape{stringtype(“circle”,“square”,…);}VoiddrawAllShapes(ListShapes){for(Shapeshape:Shapes){if(shape.type==“circle”){drawCircle(shape);}elseif(shape.type==“square”){drawSquare(shape);}…}}Refac
8、torittofollowOCPInterfaceShape{pbulicvoiddraw();}classCircleimplementsShape{}classSquareimplementsShape{}VoiddrawAllShapes(ListShapes){for(Shapeshape:Shapes){shape.draw();}}BadExampleinDMEprojectGetVirtualMachinesfromTopologyObjectsObj
此文档下载收益归作者所有