第二章 【面向对象设计原则】

(一)如何衡量软件设计的质量

        内聚度:

表示一个应用程序的单个单元所负责的任务数量和多样性。内聚与单个类或者单个方法单元相关。(好的软件设计应该做到高内聚。)

耦合度

耦合度表示类之间关系的紧密程度。低耦合是指尽量使用抽象耦合,少用具体耦合。



设计原则名称设计原则简介重要性
单一职责原则的职责要单一,不能将太多的职责放在一个类中。★★★★☆
开闭原则软件实体对扩展是开放的,但对修改是关闭的,即在不修改一个软件实体的基础上去扩展其功能。 ★★★★★
历史替换原则在软件系统中,一个可以接受基类对象的地方必然可以接受一个子类对象。 ★★★★☆ 
依赖倒转原则要针对抽象层编程,而不要针对具体类编程。 ★★★★★ 
接口隔离原则 用多个专门的接口来取代一个统一的接口。 ★★☆☆☆
组合/聚合复用原则在系统中应该尽量多使用组合和聚合关联关系,尽量少使用甚至不使用继承关系。 ★★★★☆ 
迪米特法则一个软件实体对其他实体的引用越少越好,或者说如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互作用,而是通过引入一个第三者发生间接交互。 ★★★☆☆ 



一)单一职责(Single Responsibility Principle,SRP):

一个类而言,应该仅有一个引起它变化的原因,永远不要让一个类存在多个改变的理由。一个类只应该做和一个任务相关的业务,不应该把过多的业务放在一个类中完成。


二)开闭原则(Open-Close Principle,简称OCP):

是指一个软件实体(类、模块、方法等)应该对扩展开放,对修改关闭。开闭原则是设计原则的核心原则。


三)里氏替换原则(The Liskov Substitution Principle,LSP):

子类应该能够完全替换任何父类能够出现的地方,并且经过替换后,不会让调用父类的客户程序从行为上有任何改变。


四)依赖倒转原则 ((Dependency Inversion Principle,简称DIP)):

高层模块不应该依赖于低层模块,二者都应该依赖于抽象;

抽象不应该依赖于细节,细节应该依赖于抽象。 

也就是面向抽象编程,不要面向具体编程


五)组合/聚合复用原则(Composite/Aggregation Reuse Principle,CARP):

是指要尽量使用组合/聚合实现代码复用,少用继承来达到复用目的。


六)接口隔离原则 (Interface Segregation Principle,简称ISP):

是指客户不应该依赖它们用不到的方法,只给每个客户它所需要的接口。换句话说,就是不能强迫用户去依赖那些他们不使用的接口。也就是使用专门的接口,比用一个统一的接口好


七)迪米特法则 (Law of Demeter,简称LOD):

一个软件实体应当尽可能少的与其他实体发生相互作用。 (不要与陌生人说话!)


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值