一、面向对象的定义
面向对象编程(Object-Oriented Programming,OOP)是一种编程方法,其中程序是由对象组成的。面向对象的编程的核心思想是,将程序中的实体、数据和功能抽象为单独的对象,并在这些对象之间建立联系。
面向对象的底层其实还是面向过程,把面向过程抽象成类,然后封装,方便我们使用就成为了面向对象。
面向过程:性能比面向对象好,因为类的调用需要实例化,开销比较大,比较消耗资源。缺点就是不易维护,不易复用,不易扩展。
面向对象:易复用,已维护,易扩展,面向对象封装、继承、多态的特性,让其可以设计出低耦合的系统,是系统更加灵活,更易于维护,缺点就是性能比面向过程差。
二、三大特性
1、封装
隐藏对象的属性和实现细节,仅对外提供公共访问方式,将变化隔离,便于使用,提高服用性和安全性。
2、继承
提高代码的复用性,也是面向对象实现多态的前提。
3、多态
父类或接口定义的引用变量可以指向子类或具体实现类的实例对象,提高了程序的拓展性。
三、五大基本原则
1、单一职责原则SRP(Single Responsibility Principle)
类的功能要单一,不能包罗万象,跟杂货铺似的。
2、开放封闭原则OCP(Open-Close Principle)
一个模块对于扩展是开放的,对于修改是封闭的,可以增加功能,不可以修改
3、里式替换原则LSP(the Liskov Substitution Principle LSP)
子类可以替换父类在父类能够出现的任何地方。比如你可以替你老爸去姥姥家干活--
4、依赖倒置原则(the Dependency Inversion Principle DIP)
高层次的模块不应该依赖低层次的模块,他们都应该依赖于抽象。抽象不应该依赖于具体实现,具体实现应该依赖于抽象
5、接口分离原则(the Interface Segregation Principle ISP)
设计时采用多个与特定客户类有关的接口比采用单一通用的接口要好
总结:面向对象让复杂的问题得以简单化,面向过程偏向于机器思维,面向对象更符合人类的思维