Define the skeleton of an algorithm or a role or a behavior modification deferring some steps to abstract methods. Turn popular behaviors or behavior modifications on and off dynamically. Motivation Have an encapsulated unit for behavioral abstraction for new behavior and modified behavior covering multiple classes. Concrete class structures are overworked and to favor reusability each behavior should be expressed in terms of an idealized class structure that is mapped flexibly into a concrete class structure. This not only favors reusability, but it also makes programs simpler.
Applicability Use to implement popular behaviors and behavior modifications.
A personality has local data and functions and a constructor and an upstream and downstream interface.