Component-based
Component-based architecture focus on reusability and separation of concerns principle.
Component
- A building block from a system
- A concrete implementation in the code, not an abstract concept
- Deployable and replaceable
- Component can be grouped together to form packages
Interface
To communication with each other, component provide interfaces which act as contracts.
- An interface’s implementation shall do what its methods says it does
- An interface's implementation shall do no harm
- If an implementation is unable to perform its responsibilities, it shall notify its caller