GRASP设计模式.doc
上传人:sy****28 上传时间:2024-09-14 格式:DOC 页数:14 大小:130KB 金币:16 举报 版权申诉
预览加载中,请您耐心等待几秒...

GRASP设计模式.doc

GRASP设计模式.doc

预览

免费试读已结束,剩余 4 页请下载文档后查看

16 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

面向对象设计的原则指南–概要篇我们在进行面向对象设计(OOD)时应该怎样进行,遵循什么原则呢?我们或许听说过设计模式,那是针对特定的问题提出的特定的解决方法。面向对象的设计从提出到现在经过很多人的经验和实践,也总结出了很多原则。在设计开发中,如果能有意识地向这些原则靠拢,对我们的系统设计与开发会有很大的帮助,也是构筑具有稳定性,扩展性的系统的一个保障:-是否遵守了那些基本原则-如果违反了基本原则,是否存在合适的理由这些被大师们总结出来的基本原则包括了:1,类的设计原则2,包的设计原则2.1包的内部关系方面(聚合性)的原则2.2包之间的关系方面(耦合性)的原则类设计原则TheSingleResponsibilityPrinciple(SRP)-OO设计的单一职责原则Thereshouldneverbemorethanonereasonforaclasstochange.永远不要让一个类存在多个改变的理由。TheOpen-ClosedPrinciple(OCP)-面向对象软件设计的开闭原则Softwareentities(classes,modules,function,etc.)shouldbeopenforextension,butclosedformodification.软件实体(模块,类,方法等)应该对扩展开放,对修改关闭。TheLiskovSubstitutionPrinciple(LSP)-OO设计的里氏替换原则Functionsthatusepointersorreferencestobaseclassesmustbeabletouseobjectsofderivedclasseswithoutknowingit.所有引用基类的地方必须能透明地使用其子类的对象。TheDependencyInversionPrinciple(DIP)-OO设计的依赖倒置原则A.Highlevelmodulesshouldnotdependuponlowlevelmodules.Bothshoulddependuponabstractions.B.Abstractionsshouldnotdependupondetails.Detailsshoulddependuponabstractions.A.高层模块不应该依赖于低层模块,二者都应该依赖于抽象B.抽象不应该依赖于细节,细节应该依赖于抽象TheInterfaceSegregationPrinciple(ISP)-OO设计的接口分隔原则Clientsshouldnotbeforcedtodependuponinterfacesthattheydonotuse.不能强迫用户去依赖那些他们不使用的接口。包设计原则包的内部关系方面(聚合性)的原则TheReleaseReuseEquivalencyPrinciple(REP)-OO设计的重用发布等价原则Thegranuleofreuseisthegranuleofrelease.重用粒度等价于发布粒度。TheCommonReusePrinciple(CRP)-OO设计的全部重用原则Theclassesinapackagearereusedtogether.Ifyoureuseoneoftheclassesinapackage,youreusethemall.包的所有类被一起重用。如果你重用了其中的一个类,就重用全部。TheCommonClosurePrinciple(CCP)-OO设计的共同封闭原则Theclassesinapackageshouldbeclosedtogetheragainstthesamekindsofchanges.achangethataffectsapackageaffectsalltheclassesinthatpackage.一个包中所有的类应该对同一种类型的变化关闭。一个变化影响一个包,便影响了包中所有的类。包之间的关系方面(耦合性)的原则TheAcyclicDependenciesPrinciple(ADP)-OO设计的无环依赖原则Thedependencystructurebetweenpackagesmustbeadirectedacyclicgraph(DAG).Thatis,theremustbenocyclesinthedependencystructure.包之间的依赖结构必须是一个直接的无环图形(DAG)。也就是说,在依赖结构中不允许出现环(循环依赖)。TheStableDependenciesPrinciple(SDP)-OO设计的稳定依赖原则Thedependenciesbetweenpackagesinadesignshouldbeinthed