Junior — Middle
What requirements must be met for a class to be considered an entity in the context of development?
sobes.tech AI
Answer from AI
In the context of development, especially in Domain-Driven Design (DDD), a class is considered an entity if it possesses the following characteristics:
- Unique identity: the object has a unique identifier (for example, an
idfield) that distinguishes it from other objects, regardless of the values of other fields. - Persistence of identity over time: even if the properties of the object change, its identity remains the same.
- Behavior and state: an entity contains not only data but also business logic related to that data.
Example in Java:
public class User {
private final UUID id; // unique identifier
private String name;
public User(UUID id, String name) {
this.id = id;
this.name = name;
}
public UUID getId() {
return id;
}
public String getName() {
return name;
}
public void changeName(String newName) {
this.name = newName;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (!(o instanceof User)) return false;
User user = (User) o;
return id.equals(user.id);
}
@Override
public int hashCode() {
return id.hashCode();
}
}
Here, User is an entity with a unique id that defines its identity.