♦♦♦ Object-Oriented Design Patterns for Computation
Most textbooks and courses on object-oriented programming (OOP) emphasize three kinds of object:
- GUI (screen) objects
- One-dimensional container (Java collection) objects
- Composite (entity, record) application-domain objects that lend themselves to inheritance hierarchies
The object paradigm, however, is often ignored or misused for numeric computation. Surpsisingly many programmers are developing Fortran programs in Java or other OOP languages. But OOP is extremely valuable—some say necessary—in computing with numeric quantities, where carefully designed numeric classes:
- assure type safety and units integrity,
- help programmers to avoid common bugs,
- expland opportunities for component reuse,
- promote source code understandability and maintainability.
Conrad Weisert will show not only how numeric objects simplify computational programming, but also how common design patterns can simplify the creation of robust numeric classes themselves. He will draw on C++ examples from both business/commercial applications and scientific/engineering applications. Knowledge of C++ or Java is helpful but not required.