An object contains other objects (elements) and must give access to them for clients, without exposing its internal structure. This is an observation.
The subject-object can generate events as an iterable (iterator) and could use different strategic algorithms to achieve a task. Class objects can be used to aggregate other class objects.
In python, the decorator function mimics the outer function of a nested function, but still maintains the functionality of the second function