The creation of Business Entities allows business logic to interact with rows in database tables as objects and in doing so allows business methods to be invoked on those objects to perform some business function. Quite another thing is how the entities react to proposed changes in their state. Outside callers have no business being exposed to the internal validations and cascading state changes within the objects that they interact with. Because of object encapsulation, they should not be exposed to such issues. Nonetheless, there needs to be a way to program the internal logic of entities. This is the reason for Change Handlers, to provide for objects to react to proposed changes in their state.
Change Handlers are classes that add behavior to entities. This behavior takes two forms.