0

0

我的 React 之旅:第 15 天

DDD

DDD

发布时间:2024-12-12 14:12:21

|

1046人浏览过

|

来源于dev.to

转载

我的 react 之旅:第 15 天

面向对象编程(oop)
面向对象编程是一种基于对象概念的编程范式。

面向对象编程的关键原则
1.封装:

  • 将相关变量和函数分组到一个对象中。
  • 鼓励减少函数中的参数,降低复杂性。 例子:
function circle(radius) {
    this.radius = radius;
    this.draw = function() {
        console.log('draw');
    };
}
const circle = new circle(5);
console.log(circle.radius); // access encapsulated property
circle.draw(); // call encapsulated method

2.摘要:

隐藏细节和复杂性,仅暴露对象的必要部分。
简化界面并减少底层代码更改的影响。
示例:抽象方法,同时隐藏内部逻辑。

3.继承:

允许一个类(子类)继承另一个类(父类)的属性和方法。
减少冗余代码。
示例:

class animal {
    eat() {
        console.log("this animal is eating.");
    }
}
class dog extends animal {
    bark() {
        console.log("the dog is barking.");
    }
}
const dog = new dog();
dog.eat(); // inherited from animal
dog.bark();

4.多态性:

指具有多种形式的物体。
允许为不同的对象类型提供统一的接口,从而实现代码重用和灵活性。
示例:

class animal {
    sound() {
        console.log("this animal makes a sound.");
    }
}
class dog extends animal {
    sound() {
        console.log("the dog barks.");
    }
}
const animal = new animal();
const dog = new dog();
animal.sound(); // output: this animal makes a sound.
dog.sound();    // output: the dog barks.

oop 的重要性

  • 封装:降低复杂性并增强可重用性。
  • 抽象:隐藏实现细节,简化交互。
  • 继承:消除代码重复并促进重用。
  • 多态性:实现灵活性和简化的代码结构。

实际例子
类和构造函数

Designify
Designify

拖入图片便可自动去除背景✨

下载
  • 以结构化、简洁的方式创建对象。
  • 示例:
class product {
    constructor(name, price) {
        this.name = name;
        this.price = price;
    }

    displayproduct() {
        console.log(`product: ${this.name}`);
        console.log(`price: $${this.price.tofixed(2)}`);
    }

    calculatetotal(salestax) {
        return this.price + this.price * salestax;
    }
}

const product1 = new product("laptop", 1200);
product1.displayproduct();
console.log(`total price: $${product1.calculatetotal(0.1).tofixed(2)}`);

与动物的传承

  • 展示可重用性和方法重写。
  • 示例:
class Animal {
    eat() {
        console.log("This animal eats food.");
    }
}

class Bird extends Animal {
    fly() {
        console.log("This bird can fly.");
    }
}

const bird = new Bird();
bird.eat();
bird.fly();

反思
我学到了什么:

  • 核心 oop 原则:封装、抽象、继承、多态性。
  • 降低代码复杂性和增强可重用性的实际用例。
  • 应用构造函数、方法和继承来解决现实世界的问题。

oop 是另一个层次。

明天我们再去!

相关专题

更多
go语言 面向对象
go语言 面向对象

本专题整合了go语言面向对象相关内容,阅读专题下面的文章了解更多详细内容。

54

2025.09.05

java面向对象
java面向对象

本专题整合了java面向对象相关内容,阅读专题下面的文章了解更多详细内容。

47

2025.11.27

java多态详细介绍
java多态详细介绍

本专题整合了java多态相关内容,阅读专题下面的文章了解更多详细内容。

15

2025.11.27

java多态详细介绍
java多态详细介绍

本专题整合了java多态相关内容,阅读专题下面的文章了解更多详细内容。

15

2025.11.27

java多态详细介绍
java多态详细介绍

本专题整合了java多态相关内容,阅读专题下面的文章了解更多详细内容。

15

2025.11.27

硬盘接口类型介绍
硬盘接口类型介绍

硬盘接口类型有IDE、SATA、SCSI、Fibre Channel、USB、eSATA、mSATA、PCIe等等。详细介绍:1、IDE接口是一种并行接口,主要用于连接硬盘和光驱等设备,它主要有两种类型:ATA和ATAPI,IDE接口已经逐渐被SATA接口;2、SATA接口是一种串行接口,相较于IDE接口,它具有更高的传输速度、更低的功耗和更小的体积;3、SCSI接口等等。

994

2023.10.19

PHP接口编写教程
PHP接口编写教程

本专题整合了PHP接口编写教程,阅读专题下面的文章了解更多详细内容。

53

2025.10.17

php8.4实现接口限流的教程
php8.4实现接口限流的教程

PHP8.4本身不内置限流功能,需借助Redis(令牌桶)或Swoole(漏桶)实现;文件锁因I/O瓶颈、无跨机共享、秒级精度等缺陷不适用高并发场景。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

237

2025.12.29

php源码安装教程大全
php源码安装教程大全

本专题整合了php源码安装教程,阅读专题下面的文章了解更多详细内容。

74

2025.12.31

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
SQL 教程
SQL 教程

共61课时 | 3.3万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号