第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个设计原则会变化,但这个总的设计目标不会变化。


目录
相关文章
|
Android开发
flutter中实现仿Android端的onResume和onPause方法
flutter中实现仿Android端的onResume和onPause方法
|
10月前
|
供应链 安全 Cloud Native
阿里云飞天企业版获【可信云·容器平台安全能力】先进级认证
阿里云飞天企业版容器系列产品获中国信息通信研究院【可信云·容器平台安全能力】先进级认证,这是飞天企业版容器产品获得《等保四级PaaS平台》和《 云原生安全配置基线规范V2.0》之后,本年度再一次获得行业权威认可,证明飞天企业版的容器解决方案具备符合行业标准的最高等级容器安全能力。
309 8
阿里云飞天企业版获【可信云·容器平台安全能力】先进级认证
【Java集合类面试二十三】、List和Set有什么区别?
List和Set的主要区别在于List是一个有序且允许元素重复的集合,而Set是一个无序且元素不重复的集合。
|
机器学习/深度学习 定位技术 Python
Matplotlib 教程 之 Matplotlib imshow() 方法 6
Matplotlib `imshow()` 方法教程:详解如何使用 `imshow()` 函数显示二维图像,包括灰度图、彩色图及不同插值方法的应用示例。通过调整参数如颜色映射(cmap)、插值方法(interpolation)等,实现图像的不同视觉效果。
289 2
|
前端开发 API 区块链
合约交易丨秒合约丨永续合约丨合约跟单系统开发指南步骤
合约交易、秒合约、永续合约和合约跟单系统的开发基本要素和指南如下:
|
机器学习/深度学习 人工智能 自然语言处理
【CVPR2024】阿里云人工智能平台PAI图像编辑算法论文入选CVPR2024
近期,阿里云人工智能平台PAI发表的图像编辑算法论文在CVPR-2024上正式亮相发表。论文成果是阿里云与华南理工大学贾奎教授领衔的团队共同研发。此次入选标志着阿里云人工智能平台PAI自主研发的图像编辑算法达到了先进水平,赢得了国际学术界的认可。在阿里云人工智能平台PAI算法团队和华南理工大学的老师学生们一同的坚持和热情下,将阿里云在图像生成与编辑领域的先进理念得以通过学术论文和会议的形式,向业界传递和展现。
|
监控 Ubuntu Linux
|
Windows
windows系统 如何查看端口占用情况并关闭占用的进程?
windows系统 如何查看端口占用情况并关闭占用的进程?
1288 0
|
编解码 vr&ar 计算机视觉
39亿参数模型公开可用,采样速度7倍提升,残差量化生成图片入选CVPR'22
39亿参数模型公开可用,采样速度7倍提升,残差量化生成图片入选CVPR'22
406 0
39亿参数模型公开可用,采样速度7倍提升,残差量化生成图片入选CVPR'22