In recent years there has been a considerable amount of discussion of frameworks and of design patterns. In some ways, these two ideas are very similar. They start from the observation that a class by itself is seldom the solution to a whole problem, and that just as important as a class is the relationships between several classes that work together. Frameworks and patterns are both ways of describing how a collection of classes work in harmony to solve a problem.