In this chapter, we looked at the concepts behind several major design patterns and saw when you would use each approach and why you would do so.
If you are an experienced Java programmer, these concepts should be very familiar, and if not, then hopefully this will serve as a foundation that will help you to understand not only what we are doing in the subsequent chapters, but also why we are doing it.
In the beginning of this chapter, we touched upon the philosophy behind plugin development—that people should seek to collaborate, reuse, and extend existing code to provide new functionality whenever possible. If everyone went off and created their own plugins for their own particular needs, rather than collaborating and contributing to existing efforts, there would be massive duplication and replication, and the quality would be far poorer as a result.
This ethos and the preceding design approach has created a community of plugin developers who produce high quality software by providing...