Kirjeldus
Data-Oriented Design (DOD) on tarkvaraarendusmeetod, mis keskendub andmete struktuurile ja voolule, et maksimeerida arvutusressursside kasutamist. Erinevalt objektorienteeritud lähenemisest, mis keskendub objektidele ja nende funktsioonidele, seab DOD esikohale andmed ja nende töötlemise tõhususe.
Arendustsükli joonis
Allolev joonis illustreerib Data-Oriented Designi tsüklit:

Head ja vead
Head küljed
- Optimeerib mälu- ja protsessorikasutust, suurendades jõudlust.
- Sobib hästi suurandmete töötlemise ja mänguarenduse jaoks.
- Parandab koodi struktureeritust ja andmete lihtsat käsitlemist.
Halvad küljed
- Võib olla keeruline mõista ja rakendada ilma põhjaliku ettevalmistuseta.
- Rohkem keskendutakse optimeerimisele kui lihtsusele.
- Võib nõuda suuri muudatusi olemasolevates süsteemides.
Case-vahend: Entity Component System (ECS)
Entity Component System (ECS) on arhitektuuriline lähenemine, mida kasutatakse sageli Data-Oriented Designi rakendamiseks. ECS eraldab andmed ja loogika, mis võimaldab tõhusamat ressursikasutust.
ECS omadused
- Jagab objektid entiteetideks, komponentideks ja süsteemideks.
- Võimaldab andmete töötlemist partiidena, suurendades jõudlust.
- Sobib hästi mängumootoritele ja suurte andmestruktuuride haldamiseks.
Näide ECS-st mänguarenduses:
struct Position { float x, y, z; }; struct Velocity { float dx, dy, dz; }; void update_position(Position& pos, const Velocity& vel, float dt) { pos.x += vel.dx * dt; pos.y += vel.dy * dt; pos.z += vel.dz * dt; }