SOLID – Single Responsibility

Def. A class should have only a single responsibility (Robert C. Martin) “S” in SOLID acronym stands for Single Responsibility Principle.The definition seems quite obvious, intuitive and simple. But it’s not.Let’s clarify it. In order to proceed, I will introduce 2 new terms: Business Responsibility is business requirement, functionality that describe public class’ interface. It usually comes from […]

Continue reading


 Covariance

Covariance & Contravariance are one of the most confusing terms in C#, no surprise it’s very popular for geeky questions in job interviews. Any time someone mentions those terms, it takes quite a while to refresh my knowledge about it. So, I decided to write a couple posts explaining them in the simplest and shortest […]

Continue reading