面向对象六大设计原则

1. 单一职责(Single Responsibility Principle)

  • 应该有且只有一个原因引起类的变更
  • 对于接口、类、方法,要求做到职责单一,变更简单(变更影响最小化)
  • 在实际开发过程中,职责需要根据实际业务场景划分,很难标准化,建议控制接口方法 的数量尽可能少,避免“较大类”的出现
  • 示例:用户接口,需要注册、登录、修改手机号、修改用户信息、获取短信验证码等方法,可以根据是否修改用户信息数据拆分为用户信息接口(注册、修改手机号、修改用户信息)和登录验证接口(获取短信验证码、登录)

2. 开闭原则( Open Closed Principle)

  • 一个软件实体如类、模块和函数应该对扩展开放、对修改关闭
  • 开闭原则是面向对象设计的精髓,要求我们在设计时能够做到”拥抱需求变化“,即在开发过程中,要考虑可能发生的需求变化,并对变化进行抽象封装,在需求变化时,能在不修改原有代码的前提下进行扩展
  • 示例:实现加减法计算接口,如果不遵循开闭原则,直接定义接口ICalculator接口(包含加法、减法方法),如果有需求需要增加乘法,则需要修改ICalculator接口增加乘法方法,并修改Calculator实现类

 遵循开闭原则的设计:这时增加乘法实现,只需要扩展一个乘法接口,无需修改原来的代码

3. 里氏替换(Liskov Substitution Principle)

  • 子类能够完全替换父类,所有父类出现的地方,都可以使用子类替换
  • 示例:Person类调用Animal抽象类的eat()方法,Dog类和Cat类都重写了eat()方法,在Animal出现的地方,都可以使用Dog、Cat类的对象替换

4. 赖倒置( Dependence Inversion Principle)

  • 高层模块不应该依赖底层模块,两个都应该依赖抽象
  • 抽象不应该依赖细节,细节应该依赖抽象

5. 迪米特法则( Law of Demeter)

  •   最少知识原则
  •   类间解耦、弱耦合
  •  示例: personA调用persionB,persionB中使用了personC实例,只需要在personB中依赖persionC,不需要在personA中声明personC使用personB调用

6. 接口隔离原则(Interface Segregation Principle)

  •   客户端不应该依赖它不需要的接口
  •   类间的依赖关系必须建立在最小的接口上
  •   和单一职责原则在实现上有共通之处,单一职责在业务上保证接口的“纯洁性”,接口隔离原则在调用关系/模块依赖上保证接口的“纯洁性”
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值