预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共14页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

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

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