Systems
Patterns that form the most basic structure of the system
Application
Perspectives on how a system should be structured, based on what's perceived most important: ease-of-development, testability, or understandability
Smart-UI
Document-View
Traditional Model-View-Controller
Model-View-Updater
Model-View-Adapter
Model-View-Presenter
Model-View-Viewmodel
MVVM, Model-View-Binder
Hierarchical MVC
Presentation-Abstraction-Control, Hierarchical model-view-controller
Microkernel
Kernel
Software Framework
Entity-Control-Boundary
Entity-Boundary-Control, Boundary-Control-Entity
Hexagonal Architecture
Ports and Adapters, Onion Architecture, Clean Architecture, Functional Core / Imperative Shell
