摘要/面向对象设计原则-高效编写可维护代码

OOPS编程核心 SOLID设计原则 高内聚 低耦合

Head First Design Pattern(深入浅出设计模式)

 

DRY Don't Repeat Yourself

更注重功能的不重复而不仅仅是代码的重复

封装经常修改的代码 Encapsulate What Changes

封装并且逐步开放权限

开闭原则 OpenClosed Design Principle

SOLID中的o

扩展开发 修改闭合

重新

单一职责原则Single Responsibility Principle(SRP)

SOLID中的s

打破耦合关系需要重新测试

依赖注入/翻转原则 Dependency Injection or Inversion principle

SOLID中的D

Spring中的DI

任何一个类都易于用模拟对象进行测试

更易于维护 创建对象的代码集中且和客户端代码是隔离的

实现方式: 字节码工具 AOP(面向切面编程)框架 切入点表达式 Spring中的代理

 

优先组合非继承 Favor Composition over Inheritance

组合灵活性很高

运行时通过设置属性修改一个类的行为

通过使用多态 接口的形式实现类之间的组合关系 为修改组合关系提供灵活性

 

里式替换原则 Liskov Substitution Principle LSP

SOLID中的L

父类出现的地方可以用子类代替

与单一职责原则 接口隔离原则密切相关

派生类或子类相较于父类应增强功能

 

接口隔离原则

接口拆分 单一接口 更少的方法

 

接口为中心编程(并非实现对象)

接口的实现 兼容现有代码结构

返回值尽量用接口

 

代理原则

equals hashcode

让用于比较的类本身完成对比工作而非它们的调用方

没有重复编码而且很容易修改类的行为

 

高效编写可维护代码

  • 命名:利用名字来解释变量、函数等的目的。
  • 封装函数:将一些特定功能的代码封装成一个函数以明确目的。
  • 引入变量:将表达式插入至专用变量。
  • 类和模块接口:将类和模块中的函数暴露出来,让代码更加清晰。
  • 代码分组:用组来区分不同的代码片段。

 

  • 重命名函数
    • 避免使用含糊的字眼
    • 使用主动动词,以表示函数主动执行。指定返回值类型。强类型的语言也可以用类型标识符来表明函数的返回值类型。
    • 指定单位——如果里面有数值参数,那可以加上其单位。
    • 将代码封装成函数
  • 重命名变量
    • 用函数代替条件表达式
    • 用变量代替表达式
    • 用变量代替方程式
  • 重命名常量
    • 如果代码里面有一些特殊值,那最好给它们命名
  • 制定规则:
    • 最好遵循相同的命名规则。这样阅读的人就能在参考其他代码的基础上正确猜测出各种事物的含义
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值