>> >> >> Reference << << << <<<<<<Ref>>>>>>
ECS
Modified: 2026-03-18 || Author:ljf12825

要对ECS有全面的认识,需要拿它和OOP进行对比
OOP并不是一种架构,而是一种编程范式,它太过流行且和几种经典架构深度绑定
要将OOP,需要拿它和PP进行对比

OOP

OOP的起源

在OOP大规模流行之前,主流的编程方式是面向过程编程,比如C语言
面向过程关注的是过程,反映到代码中就是函数和函数调用
但随着软件变得越来越复杂,面向过程的方式就暴露了严重的问题

  1. 代码难以维护:一个大型软件可能有成千上万个函数,修改一个数据结构,可能会引发连锁反应,牵一发而动全身
  2. 代码复用性差:很难把一套逻辑原封不动地搬到另一个项目里
  3. 与现实世界脱节:用函数和变量来描述现实世界的复杂关系(比如,一个“人”有“姓名”、“年龄”,可以“走路”、“说话”的动作)非常别扭

为解决这些问题,OOP应运而生。它的核心理念是:将数据和对数据的操作封装在一起,形成一个独立的“对象”,让计算机程序的结构更接近人类对现实世界的认知

在C中

struct Player {
    int hp;
    int atk;
};

void attack(struct Player* p) {
    // ...
}

数据(Player)和行为(attack)是分离的

在OOP中

class Player {
public:
    int hp;
    int atk;

    void attack() {
        // ...
    }
};

数据 + 行为 = 一个对象

OOP的核心概念:类与对象

  • 类(Class):可以理解为一个蓝图或模具。它定义了一类事物应该具有什么样的属性(数据)和行为(方法/函数)
  • 对象(Object):根据这个蓝图创造出来的实例

OOP四大特性

OOP与架构

ECS