Introduction
Good computer vision programs begin with good programming practices. Building a bug-free application is just the beginning. What you really want is an application that you and the programmers working with you will be able to easily adapt and evolve as new requirements come in. This chapter will show you how to make the best use of some of the object-oriented programming principles in order to build good quality software programs. In particular, we will introduce a few important design patterns that will help you build applications with components that are easy to test, maintain, and reuse.
Design patterns are a well-known concept in software engineering. Basically, a design pattern is a sound, reusable solution to a generic problem that occurs frequently in software designing. Many software patterns have been introduced and well documented. Good programmers should build a working knowledge of these existing patterns.
This chapter also has a secondary objective. It will teach...