# Components Spec
Components are elements that provide concrete functionality.
- Define a descriptive name
- Have one single responsibility
- Name properties as nouns
- Declare private/protected properties only
- Implement a defined interface
- Prefer composition over inherence
- Prefer to implement immutability
Components inherit the Interface Spec.
← Interfaces Exceptions →