Il motivo per cui sto facendo questa domanda è che voglio sapere come chiamare correttamente un'architettura in cui le classi hanno dati o logica ma non entrambi. So che questo va contro l'orientamento agli oggetti e l'incapsulamento. Voglio usare i termini corretti per discutere di questa architettura.
EDIT: Leggendo le risposte che ho ricevuto, posso vedere che la mia domanda non era chiara. Sento anche che la modifica che è stata apportata non ha spinto la domanda nella direzione in cui stavo andando.
Ripeterò la domanda in altri termini.
Supponi di lavorare in C #, in Java o in qualche altro linguaggio OO.
Hai 2 design:
DESIGN A:
class Car
{
// data
int numberOfWheels;
Engine carEngine;
// methods
public void StartCar();
}
DESIGN B:
class Car
{
// this class contains only data (be it entity, DTO, whatever)
int numberOfWheels;
Engine carEngine;
}
class CarStarter
{
public void StartCar(Car aCar);
}
Nel DESIGN B, alcune classi sono usate come strutture dati / DTO / entità (contengono solo dati e non devono contenere metodi). Altre classi contengono la logica e funzionano con le classi di dati.
Ora supponiamo di avere un design / architettura in cui la DESIGN B, dovrebbe essere applicata in tutto e non al design A.
Stavo cercando un termine che descrivesse il DESIGN B, o il termine / nozione OOP che consisteva nel DESIGN A. Preferibilmente entrambi.
Per il termine OOP immagino che potrebbe essere l'incapsulamento. Da Wikipedia Incapsulamento
A language construct that facilitates the bundling of data with the methods (or other functions) operating on that data.
Ancora non so come chiamare DESIGN B però.