describe how objects are composed to form larger subsystems.
- Model-View-Controller (MVC)
describe how objects communicate with each other.
- Delegation
- Strategy
- Observer
- Memento
instantiate or "create" objects for you.
- Singleton
- Builder
- Open arrow indicates inheritance, read as is a
- Pointed arrow indicates a property, read as has a
- Open arrow with a dashed line indicates a protocol conformancy
- Pointed arrow with a dashed line to indicate uses (as delegates to)