The techniques and design patterns outlined in  have been instrumental in the design of the Stereocam system. Specifically, the Strategy pattern is the underlying pattern of the input, output and processing modules. This pattern allows one to define a family of algorithms (for instance, those algorithms that input an image) which are all interchangeable, allowing the algorithm to vary independently from the clients using it. In addition, the Factory Method pattern will be used for decisions of exactly which input, output and processing modules should be used. This pattern allows the actual instantiation of objects to be deferred to subclasses, providing the flexibility often required with the Strategy pattern.