Summary
In this chapter, we looked at a few methods that we could use to make our components (and general architecture) open to extension without requiring core modification. There's a lot to take in here and not nearly enough community standardization for this to be the final word on pluggable components. Hopefully, there's enough here for you to design the right plugin architecture for your application.
In the next chapter, we will look at various ways to test the components and classes that we've built so far. We'll continue to see the benefits of things, such as dependency injection and service location, while also learning about a few new tools.