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

Clean Architecture

By Gendo Ikari

Clean Architecture

  • 30