Clean Architecture
C++ Requirements
Polymorphism
Abstract functions
Pure abstraction/interfaces
Templates
SOLID
Single Responsability Principle
One object/function should do only one thing, solve only one problem at a time
Open-Closed Principle
Open for extension
Closed for modification
Liskov Substition Principle
The behavior of a descendant class should be coherent with base class: "is a" relation
Interface Segregation Principle
Split big interfaces into small reusable interfaces.
Ex. Stream interface -> ReadStream & WriteStream
Dependency Inversion Principle
Details should depend on abstractions, abstractions shouldn't depend on details
Made with Slides.com