面向对象设计原则

面向对象设计原则

重新认识面向对象

  • 理解隔离变化:面向对象更能适应变化, 将变化带来的影响减为最小
  • 各司其职: 面向对象的方式更强调各个类的职责, 例如上节的demo, 各个图形的绘制由各个图形自己绘制, 而不是由画布来绘制
  • 什么是对象?
    • 从语言层面:对象封装了代码和数据
    • 从规格层面: 对象是一系列可被使用的公开接口
    • 从概念层面: 对象是某种拥有责任的抽象

依赖倒置原则(DIP)

  • 高层模块(稳定)不应该依赖于底层模块(变化), 二者都应该依赖于抽象(稳定)
  • 抽象(稳定)不应该依赖于细节(变化), 细节应该依赖于抽象(稳定)

上节的例子中:分解思想的demo里
MainForm依赖于Line和Rect
MainForm属于高层, 是稳定的
Line和Rect属于底层, 是变化的, 而此时MainForm依赖了低层, 违反了DIP原则

而采用另一个思想以后
MainForm依赖于Shape
而Line和Rect此时都依赖着Shape
Shape是抽象, 是稳定的, 而Line和Rect是细节, 是变化的, 符合DIP原则

至于抽象不应该依赖于实现细节, 这是什么意思呢?
Shape的抽象,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值