NipGeihou's blog NipGeihou's blog
  • Java

    • 开发规范
    • 进阶笔记
    • 微服务
    • 快速开始
    • 设计模式
  • 其他

    • Golang
    • Python
    • Drat
  • Redis
  • MongoDB
  • 数据结构与算法
  • 计算机网络
  • 应用

    • Grafana
    • Prometheus
  • 容器与编排

    • KubeSphere
    • Kubernetes
    • Docker Compose
    • Docker
  • 组网

    • TailScale
    • WireGuard
  • 密码生成器
  • 英文单词生成器
🍳烹饪
🧑‍💻关于
  • 分类
  • 标签
  • 归档

NipGeihou

我见青山多妩媚,料青山见我应如是
  • Java

    • 开发规范
    • 进阶笔记
    • 微服务
    • 快速开始
    • 设计模式
  • 其他

    • Golang
    • Python
    • Drat
  • Redis
  • MongoDB
  • 数据结构与算法
  • 计算机网络
  • 应用

    • Grafana
    • Prometheus
  • 容器与编排

    • KubeSphere
    • Kubernetes
    • Docker Compose
    • Docker
  • 组网

    • TailScale
    • WireGuard
  • 密码生成器
  • 英文单词生成器
🍳烹饪
🧑‍💻关于
  • 分类
  • 标签
  • 归档
  • 设计模式

    • 介绍与目的
    • 七大设计模式
    • 面向对象编程范式
      • 面向对象编程
      • 面向对象编程语言
      • 四大特征
        • 封装(易维护性)
        • 抽象(扩展性)
        • 继承(复用性)
        • 多态
    • 创造者模式
    • 创建者模式-单例模式
    • 创建者模式-工厂模式
    • 创建者模式-抽象工厂模式
    • 创建者模式-建造者模式
    • 创建者模式-原型模式
    • 结构型模式
    • 代理模式
    • 中介者模式
    • 命令模式
    • 责任链模式
    • 装饰模式
    • 策略模式
    • 适配器模式
    • 迭代器模式
    • 组合模式
    • 观察者模式
    • 外观模式
    • 备忘录模式
    • 访问者模式
    • 状态模式
    • 解释器模式
    • 享元模式
    • 桥接模式
    • 模板方法模式
  • 开发规范

  • 经验分享

  • 记录

  • 快速开始

  • 笔记

  • 面试题

  • 微服务

  • 踩过的坑

  • Java
  • 设计模式
NipGeihou
2022-10-08
目录

面向对象编程范式

# 面向对象编程

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

  • 两个基础且重要的概念:类(class)、对象(Object)

  • 面向对象编程是一种编程方式或编程风格。它以类或者对象作为组织代码的基本单元,并以封装、抽象、继承、多态 4 个特征作为代码的设计和实现的基石。

# 面向对象编程语言

只要某种编程语言支持类或者对象的语法概念,并且以此作为组织代码的基本单元,就可以简单地认为它是面向对象编程语言。

# 四大特征

# 封装(易维护性)

封装也称为信息隐藏或信息访问保护。类通过暴露有限的访问接口,授权外部仅能通过类提供的方式(或者称为函数)来访问内部信息或数据。

笔记

类将成员属性设为 private ,使用 get、set 方法向外暴露信息,对于只读、只写方法可省略对应 get、set 方法,即达到封装目的。

# 抽象(扩展性)

抽象是隐藏方法的内部实现,让调用者只需要关心方法提供了什么功能,并不需要知道这个功能是如何实现的。

抽象特征不一定需要依赖接口或者抽象类这些特殊的语法机制,因为类中的方法是通过编程语言中的 “函数” 这一语法机制实现的。通过函数包裹具体的实现逻辑,这本身就是一种抽象。

在定义(或称为命名)类的方法时,不要在方法的定义中暴露太多的实现细节,以保证在未来的某个时间点,需要改变方法的实现逻辑时,不需要修改方法的定义。

// 正例
getPictureUrl();

// 反例
getAliyunPictureUrl();

由于函数本身就是抽象的,调用者无需关心函数的实现,因此面向过程编程也具备抽象的特征,但面向对象编程还有其他的实现方式,如 ** 基于接口的抽象,可以在不改变原有实现的情况下,替换新的实现逻辑,提高了代码的可扩展性 **。

# 继承(复用性)

继承的最大作用是代码复用。假如两个类有一些相同的属性和方法,可以将这些相同的部分抽取到父类中,让两个子类继承父类,两个子类就可以复用父类中的代码,避免重复编写相同的代码。

# 多态

多态是指,在代码运行过程中,我们可以用子类代替父类,并调用子类的方法。

实现多态语法机制:

  1. 父类对象引用子类对象
  2. 支持继承
  3. 子类重写(override)父类中的方法
  4. 接口语法
  5. duck-typing 语法(一些动态语言支持)

作用:

  • 提高代码的可扩展性
  • 提高代码的复用性
上次更新: 2022/12/31, 03:04:26
七大设计模式
创造者模式

← 七大设计模式 创造者模式→

最近更新
01
iSCSI服务搭建
05-10
02
磁盘管理与文件系统
05-02
03
网络测试 - iperf3
05-02
更多文章>
Theme by Vdoing | Copyright © 2018-2025 NipGeihou | 友情链接
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式