什么是面向对象

面向对象、面向过程
Object Oriented Programming 面向对象编程
把现实生活中的事物以及关系,抽象成为类,通过继承、实现、组合的方式,构建一个抽象的世界

通俗的例子:
有一天你想吃鱼香肉丝了,怎么办呢?你有两个选择

面向过程:
自己买材料,肉,鱼香肉丝调料,蒜苔,胡萝卜等等然后切菜切肉,开炒,盛到盘子里。

面向对象:
去饭店,张开嘴:老板!来一份鱼香肉丝!

面向过程就是一步步的去实现一个功能,是流程化的;面向对象是模型化的,当抽象出类之后,实例化一个对象,这个对象就是个黑盒,我们有数据,有方法,需要什么功能直接使用就行。面向对象的底层还是用面向过程实现的。

面向对象的三大基本特征和五大基本原则


封装、继承、多态

封装:隐藏对象的属性和实现细节,仅对外提供公开访问方式,将变化隔离,便于使用,提高复用性和安全性。

继承:提高代码复用性;继承是多态的前提。

多态:父类或接口定义的引用变量可以指向子类或具体实现类的实例对象。提高了程序的拓展性。

五大基本原则


1、单一职责原则SRP(Single Responsibility Principle)
类的功能要单一,不能包罗万象,跟杂货铺似的。
2、开放封闭原则OCP(Open-Close Principle)
一个模块对于拓展是开放的,对于修改是封闭的,想要增加功能热烈欢迎,想要修改,哼,一万个不乐意。
3、里式替换原则LSP(the Liskov Substitution Principle LSP)
子类可以替换父类出现在父类能够出现的任何地方。比如你能代表你爸去你姥姥家干活。哈哈~~
4、依赖倒置原则DIP(the Dependency Inversion Principle DIP)
高层模块不应该依赖低层模块,两者都应该依赖其抽象
抽象不应该依赖细节
细节应该依赖抽象
5、接口分离原则ISP(the Interface Segregation Principle ISP)
设计时采用多个与特定客户类有关的接口比采用一个通用的接口要好。

总结

1、抽象会使复杂的问题更加简单化。
2、从以前面向过程的执行者,变成了张张嘴的指挥者。
3、面向对象更符合人类的思维,面向过程则是机器的思想