Principles - bradyclifford/sdlc GitHub Wiki

Software Development Principles

High cohesion and low coupling

The difference here is that while high cohesion does imply code have similar responsibilities, it doesn’t necessarily mean the code should have only one. I would say SRP is more restrictive in that sense.

Interface overload

While .NET interfaces do represent API, i.e. something you can code against, it is incorrect to attribute the term “Interface” exclusively to them. Every class has its own interface that is defined as a set of public methods.

Always depend upon abstractions, not implementations.

Relationship between .NET interfaces, classes, API and implementation details:

Related: Interfaces are not Abstractions