Guideline 35: Use Decorators to Add Customization HierarchicallyYour Coworkers’ Design IssueThe Decorator Design Pattern ExplainedA Classic Implementation of the Decorator Design PatternA Second Decorator ExampleComparison Between Decorator, Adapter, and StrategyAnalyzing the Shortcomings of the Decorator Design PatternGuideline 36: Understand the Trade-off Between Runtime and Compile Time AbstractionA Value-Based Compile Time DecoratorA Value-Based Runtime Decorator