(C#设计模式学习笔记)一、面向对象的根本性问题及松耦合与紧耦合

1.封装、继承、多态

  • 封装,隐藏内部实现
  • 继承,复用现有代码
  • 多态,改写对象行为
    继承是以封装为基础的,多态是以继承为基础的。
    封装,侧重于对象的描述。
    继承和多态,侧重于对象之间的关系描述。

2.从编程语言直观了解面向对象

通过面向对象编程语言(OOPL)认识到的面向对象,并不是面向对象的全部。OOPL的三大机制“封装、继承、多态”可以表达面向对象的所有概念,但是这三大机制没有刻画出面向对象的核心精神。

3.面向对象的根本性问题

  • 我们为什么要使用面向对象?
  • 我们应该怎样使用三大机制来实现好的面向对象?
  • 我们应该遵循什么样的面向对象原则?

4.重新认识面向对象

  • 隔离变化
    宏观层面能将变化所带来的的影响减为最小
  • 各司其职
    微观层面面向对象的方式更强调各个类的“责任”,新增员工类型不会影响原来员工类型的实现代码
    耦合关系直接决定着软件面对变化时的行为
    模块与模块之间的紧耦合使得软件面对变化时,相关的模块都要随之更改。
    模块与模块之间的松耦合使得软件面对变化时,一些模块更容易被替换或者更改,但其他模块保持不变。

5.怎样使用三大机制来实现“好的面向对象”

  • 针对接口编程,而不是针对实现编程
  • 优先使用对象组合,而不是类继承
    类继承在某种程度上破坏了封装性,子类父类耦合度高;对象组合只要求被组合的对象具有良好定义的接口,耦合度低;
  • 封装变化
    设计模式是“封装变化”方法的最佳阐释,封装变化,最重要的一点就是发现变化,或者说是寻找变化。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值