面向对象设计原则

面向对象设计原则

面向对象设计原则概述

  1. 单一职责原则
  2. 开闭原则
  3. 里氏代换原则
  4. 依赖倒转原则
  5. 接口隔离原则
  6. 合成复用原则
  7. 迪米特法则

软件的可维护性和可复用性

             知名软件大师Robert C.Martin认为一个可维护性(Maintainability) 较低的软件设计,通常由于如下4个原因造成

  1. 过于僵硬(Rigidity) 
  2. 过于脆弱(Fragility) 
  3. 复用率低(Immobility) 
  4. 黏度过高(Viscosity) 

      软件工程和建模大师Peter Coad认为,一个好的系统设计应该具备如下三个性质:

  1. 可扩展性(Extensibility) 
  2. 灵活性(Flexibility)
  3. 可插入性(Pluggability)

  1. 软件的复用(Reuse)或重用拥有众多优点,如可以提高软件的开发效率,提高软件质量,节约开发成本,恰当的复用还可以改善系统的可维护性。
  2. 面向对象设计复用的目标在于实现支持可维护性的复用。 
  3. 在面向对象的设计里面,可维护性复用都是以面向对象设计原则为基础的,这些设计原则首先都是复用的原则,遵循这些设计原则可以有效地提高系统的复用性,同时提高系统的可维护性。 
  4. 面向对象设计原则和设计模式也是对系统进行合理重构的指南针,重构(Refactoring)是在不改变软件现有功能的基础上,通过调整程序代码改善软件的质量、性能,使其程序的设计模式和架构更趋合理,提高软件的扩展性和维护性。 
常用的面向对象设计原则包括7个,这些原则并不是孤立存在的,它们相互依赖相互补充。
设计原则名称设计原则简介重要性
单一职责原则
(Single Responsibility Principle, SRP)
类的职责要单一,不能将太多的职责放在一个类中★★★★☆
开闭原则
(Open-Closed Principle, OCP)
软件实体对扩展是开放的,但对修改是关闭的,即在不修改一
个软件实体的基础上去扩展其功能
★★★★★
里氏代换原则
(Liskov Substitution Principle, LSP)
在软件系统中,一个可以接受基类对象的地方必然可以接受一个子类对象★★★★☆
依赖倒转原则
(Dependency Inversion Principle, DIP)
要针对抽象层编程,而不要针对具体类编程★★★★★
接口隔离原则
(Interface Segregation Principle, ISP)
使用多个专门的接口来取代一个统一的接口★★☆☆☆ 
合成复用原则
(Composite Reuse Principle, CRP)
在系统中应该尽量多使用组合和聚合关联关系,尽量少使用甚
至不使用继承关系
★★★★☆
迪米特法则
(Law of Demeter, LoD)
一个软件实体对其他实体的引用越少越好,或者说如果两个类
不必彼此直接通信,那么这两个类就不应当发生直接的相互作
用,而是通过引入一个第三者发生间接交互
★★★☆☆



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

tiki_taka_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值