18

Software Architectures and Patterns for Pricing Applications

18.1 INTRODUCTION AND OBJECTIVES

The goal of this chapter is to describe what design patterns are, their origins and a number of new developments in the years since the Gamma patterns book (GOF 1995) was published. We also describe how C# supports and extends the GOF patterns. There are twenty-three documented patterns in GOF 1995. In our experience we have found that a small subset of these patterns is most useful over a range of applications, as we discuss in Section 18.2. The GOF patterns are based on the principles of object-oriented inheritance, subtype polymorphism and composition. There has been a lot of discussion (at times, quite subjective and emotive) of the perceived benefits and potential risks associated with the introduction of design patterns in complex software systems. We give a number of personal (and possibly subjective) observations on the matter:

  • Design patterns are solutions to problems and they should not be used as an objective in themselves.
  • We need to determine the level of software flexibility that we wish to achieve before we embark on a patterns-based design. For example, you probably do not need to use patterns if you are developing a proof-of-concept throwaway prototype. It is for this reason that we think that there is not much point in using classes, objects and patterns in Matlab projects.
  • Even when they are useful, some developers may prefer not to use design patterns. It is important ...

Get C# for Financial Markets now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.