从思想来讲,面向过程强调的是做了一件什么事情,强调这个过程以及做的方法;而面向对象强调的是对象,也就是谁做了一件事情,这件事情是此对象的一个属性,使用者只需要知道这个对象可以做这个事情,不需要知道具体它是怎么样一个过程。
2 三要素
(1)封装:把过程和数据包围起来,对数据的访问只能通过已定义的接口。
(2)继承:一种联结类的层次模型,允许、鼓励类重用,提供了一种明确表述共性的方法。
(3)多态:允许不同类的对象对同一消息作出响应。
3 五基本原则
(1)单一职责原则(Single-Resposibility Principle):一个类,最好只做一件事,只有一个引起它的变化。强调低耦合、高内聚,以提高内聚性来减少引起变化的原因。
(2)开放封闭原则(Open-Closed principle):对扩展开放,对修改封闭的。
(3)Liskov替换原则(Liskov-Substituion Principle):子类必须能够替换其基类,也就是基类具有的方法和数据子类都有。这样才能保证系统在运行期内识别子类,这是保证继承复用的基础。
(4)依赖倒置原则(Dependecy-Inversion Principle):依赖于抽象。具体而言就是高层模块不依赖于底层模块,二者都同依赖于抽象;抽象不依赖于具体,具体依赖于抽象。具体实现来说要求分离接口和实现:在依赖之间定义一个抽象的接口使得高层模块调用接口,而底层模块实现接口的定义,以此来有效控制耦合关系,达到依赖于抽象的设计目标。
(5)接口隔离原则(Interface-Segregation Principle):使用多个小的专门的接口,而不要使用一个大的总接口。