Из того, что я прочитал, лучше всего использовать классы на основе интерфейса и свободно связывать объекты, чтобы помочь повторно использовать код и unit test.
Правильно ли это правило, которое всегда следует соблюдать?
Причина, по которой я спрашиваю, я недавно работал над системой с 100-м очень разными объектами. Несколько общих общих интерфейсов, но большинство не интересует, должен ли он иметь интерфейс, отражающий каждое свойство и функцию в этих классах?
Я использую С# и dot net 2.0, однако считаю, что этот вопрос будет соответствовать многим языкам.