The Strategy design pattern is a behavioral design pattern that allows you to define a family of algorithms, encapsulate each one as an object, and make them interchangeable at runtime. 

Hasan Dibas


Domain Driven Design is the concept that the structure and language of software code (class names, class methods, class variables) should match the business domain.

Loai Al-Shakhshir