面向对象泛型
为了应对需求的变化,我们多使用模块化来实现代。但是通常会有两个问题:
- 低内聚:例程中操作之间的联系紧密程度低
- 紧耦合:多个例程之间联系的紧密程度高
面向对象泛型,可以很好地解决这个问题。
定义:以对象为中心,一起都集中在对象上。编写代码时是围绕对象而非函数进行组织的。
什么是对象:
- 具有责任的东西。
- 从概念上讲:对象是一组责任。
- 在规约层次上:对象是一组可以被其他对象或者对象自己调用的方法。
- 在实现层次:对象是代码和数据,以及他们之间的计算交互。
- 设计规则:对象应该自己负责自己,而且应该清楚地定义责任。
什么是抽象类:
- 实现层次:不能实例化的类
- 概念层次:其他类的占位符(给一组相关的类赋予一个名字,使我们能将这一组相关类看成一个概念)
封装带来的好处:
- 对象对自己行为所负责越多,控制程序需要负的责任就越少。
- 封装使对象内部行为的变化对其他对象变得透明了。
- 封装有利于防止修改带来的副作用。
- 有利于松耦合。
设计模式
和房屋设计模式类似,软件也有自己的设计模式。模式是在某一个背景下某个问题的一种解决方案。
好处:
- 复用解决方案
- 确定通用术语(方便交流)
- 阐释了面向对象的基本原则
- 代码更容易维护和修改
需要记住并坚持的策略:
- 按接口编程(而不是按照过程编程)
- 尽量用聚合代替继承。
- 找出变化并封装。
网友评论