The creation of Business Entities allows business logic to interact with rows in database tables as objects, such that business methods can be invoked on those objects to perform some business function.
Entities react to proposed changes in their state. Because of object encapsulation, outside callers are not to be exposed to internal validations and cascading state changes within the objects they interact with. Nonetheless, it is necessary to have a way of programming the internal logic of entities. This is the reason for Change Handlers: to enable objects to react to proposed changes in their state.
Change Handlers are classes that add behavior to entities. This behavior takes two forms.