面向过程(POP)编程
Procedure Oriented Programming,面向过程是一种以过程为中心的编程思想,分析出解决问题所需的步骤,而后用函数把这些步骤实现,并按顺序调用。它是一种基础的顺序的思惟方式,面向对象方法的基础实现中也包含面向过程思想。安全
面向对象(OOP)模块化
Object Oriented Programming,面向对象是按人们认识客观世界的系统思惟方式,采用基于对象(实体)的概念创建模型,模拟客观世界分析、设计、实现软件的办法。经过面向对象的理念使计算机软件系统能与现实世界中的系统一一对应。在软件开发过程当中,宏观上,用面向对象来把握事物间复杂的关系,分析系统。微观上,仍然使用面向过程。”面向对象“是以“对象”为中心的编程思想。函数
区别性能
面向过程 | 面向对象 | |
---|---|---|
特性 | 模块化 流程化 | 抽象 封装 继承 多态 |
维护性、 复用性、 扩展性 | 弱 | 强 |
性能 | 强 | 弱 |
封装是把过程和数据包围起来,隐藏对象的属性和实现细节,对数据的访问只能经过已定义的对外公开接口。面向对象计算始于这个基本概念,即现实世界能够被描绘成一系列彻底自治、封装的对象,这些对象经过一个受保护的接口访问其余对象。类就是封装数据和操做这些数据代码的逻辑实体。在一个类的内部,某些属性和方法是私有的,不能被外界所访问。ui
经过这种方式,对象对内部数据进行了不一样级别的访问控制,就避免了程序中的无关部分的意外改变或错误改变了对象的私有部分,加强安全性和简化编程,使得使用者没必要了解具体的实现细节,而只是要经过外部接口,以特定的访问权限来使用类的成员。设计
对象的一个新类能够从现有的类中派生,这个过程称为类继承。新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。对象
经过使用继承,能够在不一样的子类中屡次从新使用父类中的代码,继承方法和实例变量,使程序结构清晰,易于维护和修改,而子类能够修改或增长新的方法使之更适合特殊的须要。继承
多态是指一个程序中同名的方法共存的状况,调用者只需使用同一个方法名,系统会根据不一样状况,调用相应的不一样方法,从而实现不一样的功能,多态机制使得不一样内部结构的对象能够共享相同的外部接口。多态性又被称为“一个名字,多个方法”。接口
多态存在的三个必要条件:继承、重写、父类引用指向子类对象
对一个类而言,应该仅有一个引发它变化的缘由。
软件实体应该是能够扩展的,可是不可修改。
子类型必须可以替换掉它们的基类型。
抽象不该依赖于细节,细节应该依赖于抽象
多个专用接口优于一个单一的通用接口。