Use classes when:
- You need multiple similar instances
- Inheritance fits your domain model
- You want clear constructor/method syntax
- Working with frameworks that expect classes
Use factories or plain objects when:
- You need flexibility over structure
- You want true privacy without
# - Composition suits your needs better