Embrace the Interceptor pattern of software design to create cleaner abstractions, enable flexibility, and set yourself up for writing high quality tests. This versatile approach empowers engineers with unmatched control, adaptability, and seamless integration with dependency injection. Join me to explore how interfaces and protocols serve as the foundation for making code flexible, adaptable and composable. We’ll talk about high level design playbooks as well as real-world examples you can start using today to leverage this software design pattern. Examples such as utilizing reflection-based Proxy Objects, employing "Fakes" in unit tests, wrapping 3rd party libraries and modifying network traffic.
Example Code on Github: https://github.com/handstandsam/interception-examples