Using decorators for security
Software is filled with cross-cutting concerns, aspects that need to be implemented consistently even if they're in separate class hierarchies. It's often a mistake to try and impose a class hierarchy around a cross-cutting concern. We've looked at a few examples, such as logging and auditing.
We can't reasonably demand that every class that might need to write to the log also be a subclass of some loggable superclass. We can design a loggable mixin or a loggable decorator. These don't interfere with the proper inheritance hierarchy that we need to design to make polymorphism work correctly.
Some important cross-cutting concerns revolve around security. Within a web application, there are two sides to the security question ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access