53
Encapsulate Record
Goal
A bare record (plain object with public fields) becomes a class whose properties are accessed through methods that can validate, log, or derive.
Before the refactoring
const org = { name: 'Acme', country: 'US' };
console.log(org.name);After the refactoringclass Org {
constructor({ name, country }) { this._name = name; this._country = country; }
name() { return this._name; }
country() { return this._country; }
}
console.log(new Org(org).name());Savings
Field renames stay internal; invariants can be enforced on every read or write; the record becomes a real domain object.
Note
Wrapping every record adds ceremony — only worth it when behavior or validation will accrete around the data.