第02/90步《番外篇》第1章认识计算机世界第5课

简介: 今天学习《番外篇》第1章认识计算机世界的第5课,认识面向对象有关的基本概念。

image.png

今天学习《番外篇》第1章认识计算机世界的第5课,认识面向对象有关的基本概念。


学习目标


  • 了解面向对象的三个基本特征;
  • 了解面向对象设计思想的6个基本原则,什么是单一职责原则、开放封闭原则、里氏替换原则、迪米特原则、接口隔离原则和依赖倒置原则;
  • 了解什么是设计模式。

主要知识点


  • 面向对象编程,英文是 Object Oriented Programming,简称 OOP,是一种通用的软件设计思想,它将复杂的事物关系从现实世界中抽离出来,以对象为单位设计其属性及方法,让不同对象之间发生作用和联系,从而实现软件设计目标的软件设计思想。

  • 面向对象语言例如 C++、Java、Swift 、JavaScript 等,都有三个基本特征:封装、继承和多态。

  • 封装,主要是指将数据,以及对数据的操作方法,封装在对象内部,对外仅暴露有限且必要的属性和方法。

  • 对于JS新语法,如果浏览器等宿主环境尚未支持,只可以使用Babel进行转化。

  • 继承指子类继承父类的属性及方法,达到复用与扩展的目的。

  • 多态指同一个对象引用,在不同情况下的不同表现。当对象引用是一个接口类型时,实现该接口的不同的实体类,它们的同一方法因为实现不同,而具有不同的表现;当对象引用是一个父类类型时,继承该父亲的所有子类,它们的同一方法如果重写了,也会有不同的表现。

  • 单一职责原则:单一职责要求每个类只负责一个功能,或相关的一类功能。

  • 开放封闭原则:对扩展开放,对修改封闭。

  • 里氏替换原则:子类对象可以替换父类对象,父类能出现的地方,子类亦能出现,但反过来却不可以。

  • 迪米特原则(自闭原则):这条原则也称自闭原则,一个类对自己依赖的类或对象,知道得越少越好。

  • 接口隔离原则:保持接口的简单独立,设计多个特定用途的小接口,好过设计一个用途宽泛的大接口。

  • 依赖倒置原则:对象间的依赖关系要建立在抽象类型上,而非具体类型上。

  • 什么设计模式?设计模式英文叫 Design pattern,是面向对象编程中反复使用的代码编写范式,是面向对象软件设计的经验总结。如果说面向对象是武功心法,那么设计模式就是与这套心法匹配的具体招式。

实践疑难点


  • 在终端中安装Babel工具,涉及两个模块的安装:@babel/cli@7.20.7和@babel/core@7.0.0。安装时最好对应上版本号,在安装Node.js所有模块时,都应该注意指定版本号,而不是一味安装最新版本。

  • 本步已开始接触到源码,在公众号艺述论回复10000下载所有源码,找到对应的源码文件,尝试在终端中运行。所有源码都是作者亲自编写并测试过的,都可以正常运行。在书中每个代码示例的顶部,注意观察,一般都有一个文件相对地址:

image.png

在下载的源码目录中找到这个文件,运行它即可。本步源码不要求手写,仅是能够在终端中使用Babel工具运行它即可。关于Babel工具的详细安装及使用方法,在前端篇第1课中有详细介绍。


小结


6个面向对象设计原则仅是人们普遍总结出来的原则,在别的地方可能是4个原则,也可能是8个原则,这不重要。重要的是,所有面向对象设计原则,本质都是为了实现高内聚、低耦合的软件设计目标。当语言发生变化的时候,6个设计原则会变化,但这个总的设计目标不会变化。


目录
相关文章
|
存储 编译器
IAT表入门简析【滴水逆向三期52笔记】
IAT表入门简析【滴水逆向三期52笔记】
|
移动开发 JavaScript 前端开发
第03/90步《番外篇》第1章认识计算机世界第6课
今天学习《番外篇》第1章认识计算机世界的第6课,认识网页开发基础概念。这是这一章的最后1课,学完它代表概念准备阶段完成。
80 0
|
存储 自然语言处理 算法
第01/90步《番外篇》第1章认识计算机世界第1课~第4课
今天学习《番外篇》第1章认识计算机世界的第1课~第4课内容,了解计算机基础原理及基础概念。没有练习,完成阅读并理解即可。
87 0
|
JavaScript
第86/90步《番外篇》第7章 学习编码规范 第39课
天学习《番外篇》第7章 学习编码规范 第39课 JS 编码补充注意事项
58 0
|
前端开发
第87/90步《番外篇》第7章 学习编码规范 第40课
今天学习《番外篇》第7章 学习编码规范 第40课 CSS 编写规范
53 0
|
开发工具 git
第82/90步《番外篇》第7章 学习编码规范 第35课
今天学习《番外篇》第7章 学习编码规范 第35课 一般性编码规范
83 0
|
JavaScript
第85/90步《番外篇》第7章 学习编码规范 第38课
今天学习《番外篇》第7章 学习编码规范 第38课 JSDoc 注释规范
65 0
|
前端开发
第88/90步《番外篇》第7章 学习编码规范 第41课
今天学习《番外篇》第7章 学习编码规范 第41课 CSS 代码格式化规范
52 0
|
JavaScript
第84/90步《番外篇》第7章 学习编码规范 第37课
今天学习《番外篇》第7章 学习编码规范 第37课 JS 代码格式化规范
76 0
|
JavaScript
第83/90步《番外篇》第7章 学习编码规范 第36课
今天学习《番外篇》第7章 学习编码规范 第36课 JS 基础编码规范
68 0