SOLID had both the Single Responsibility Principle and the Interface Segregation Principle, to me though, these seem totally interchangeable. To me, an interface is simple a class with no defined implementations.
I believe (though please correct em if I'm wrong) that in .NET
an interface
is the same as an abstract class
with no implementations. I.e., if I replaced all my interfaces with abstract classes then nothing would change (with regards to SOLID).
So... I'd it fair to say that, SOLID can become SOLD?
OK, let me elaborate. I know there are some subtle 'behind the scenes' differences, like multiple inheritance. In the world of SOLID, are there any arguments that apply to either S.R.P.
or I.S.P.
, but not the other?
Note that, in .NET
and Java
at least, a class must be at least as large an an interface