【设计模式笔记】面向对象编程的理解

从接触编程开始就一直听到面向对象的概念,之前的记忆仅仅是停留在字面意思,未能深入理解其精髓。最近翻过头来重新理一下面向对象的概念,将自己的知识点做一个梳理。


1、面向对象编程(Object Oriented Programming,OOP)

区别于传统的面向过程编程,它将数据及对数据的操作行为放在一起,作为一个相互依存、不可分割的整体——对象对于相同类型的对象进行分类、抽象后,得出共同的特征而形成了类。面向对象编程就是定义这些类。类定义好之后将作为数据类型用于创建类的对象。程序的执行表现为一组对象之间的交互通信。对象之间通过公共接口进行通信,从而完成系统功能。


2、面向对象的三个特征

封装、继承、多态。

封装

将一组具有相同特征和行为的实体抽象成独立的对象,隐藏对象的属性和实现细节,对外提供不同访问级别的接口。

继承

通过扩充已有对象的方法来创建新的对象。

多态

子类可以通过覆盖父类的同名方法来产生不同的行为。


3、面向对象的六大原则

单一职责原则、里氏替换原则、依赖倒置原则、接口隔离原则、迪米特法则、开闭原则。

单一职责原则Single-Responsibility Principle,SRP

应该有且仅有一个原因引起类的变更。

里氏替换原则(Liskov-Substitution Principle,LSP)

所有引用基类的地方必须能透明的使用其子类的对象。


依赖倒置原则(Dependence-Inversion Priciple,DIP)

高层模块不应该以来底层模块,两者都应该以来其抽象;抽象不应该依赖细节;细节应该依赖抽象。即:面向接口编程


接口隔离原则(Interface Segregation Principle)

接口尽量细化,同时接口中的方法尽量少。


迪米特法则(Lawof Demeter)

也成最少知识原则(Least Knowledge Principle,LKP),一个对象应该对其他对象有最少的了解。


开闭原则(Open Closed Principle)

对扩展开放、对修改关闭。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章