面向过程(Procedure Oriented)是一种以过程为中心的编程思想,是一种自顶而下的编程模式。
把问题分解成一个个步骤,每个步骤用函数实现,依次调用即可。例如:典型的编程语言(C语言)、实现一个简单的算法(冒泡排序)
缺点:存在代码重用性低、扩展能力差、后期维护难度比较大等问题。
简单地说,在面向对象的开发范式中,程序员将问题分解成一个个步骤,对每个步骤进行相应的抽象,形成对象,通过不同对象之间的调用,组合解决问题。
把属性、行为等封装成对象,然后基于这些对象及对象的能力实现业务逻辑。比如:想要造一辆车,首先要定义车的各种属性,然后将各种属性封装在一起,抽象成一个Car类。
所谓封装,就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的类或者对象隐藏信息。
2.2 继承继承是指这样一种能力:它可以使用现有类的所有功能,并在无须重新编写原来的类的情况下对这些功能进行扩展。
3.3 多态所谓多态,就是指一个类实例的相同方法在不同情形下有不同的表现形式。多态机制使具有不同内部结构的对象可以共享相同的外部接口。
3. 面向对象的五大基本原则 3.1 单一职责原则一个类最好只做一件事,只有一个引起它变化的原因。单一职责原则可以看作高内聚、低耦合在面向对象原则上的引申,将职责定义为引起变化的原因,以提高内聚性来减少引起变化的原因。
3.2 开放封闭原则软件实体应该是可扩展且不可修改的。也就是说,对扩展开放、对修改封闭。
主要体现在两个方面:
(1)对扩展开放,意味着当有新的需求或变化时,可以对现有代码进行扩展,以适应新的情况。
(2)对修改封闭,意味着类一旦设计完成,就可以独立完成其工作,而不要对其进行任何尝试的修改。
子类必须能够替换其基类。这一思想体现为对继承机制的约束规范,只有当子类能够替换基类时,才能保证系统在运行期内识别子类,这是保证继承复用的基础。
3.4 接口隔离原则使用多个小的专门的接口,而不要使用一个大的总接口。
分离接口的手段主要有以下两种:
(1)委托分离,通过增加一个新的类型来委托客户的请求,隔离客户和接口的直接依赖,但是会增加系统的开销。
(2)多重继承分离,通过接口多继承来实现客户的需求,这种是较好的方式。
程序要依赖于抽象接口,而不是具体的实现。简单地说,就是要对抽象进行编程,不要对实现进行编程。



