Structural Architecture Design Patterns

These are pattern that define the structure of the architecture, like lego blocks, these patterns help you to see how each part of the system fits with the others.

Component-Based Patterns

This is good when the system can be described as if it were different pieces working together or it contains plugins.

  • Components are modular building blocks of software
  • Grouped into areas of concern
  • Clearly described interfaces
  • Containers provide additional services
ProsCons
Easy deploymentCoarse building blocks
Allow 3rd PartiesCan be expensive
Promotes modularityInitialization may be slow
Few unanticipated interactionsHarder to develop & maintain

Object-Oriented Pattern

  • Use Classes
  • Group classes into areas of concern
  • Describe public members
  • Uses inheritance, composition, aggregation, and association
ProsCons
Promotes reuseInheritance hard to get right
Easy to understandMany unanticipated communications
Easy to test & deployToo detailed
Highly cohesive

@Mark Farragher