Un design OOP che utilizza un design per contratto indica che il progettista sta utilizzando le interfacce per creare un "contratto". Il termine "contratto" viene usato abbastanza spesso quando si discutono le interfacce OOP, quindi non sapevo se questi stessero parlando dello stesso concetto quando si utilizzava la parola "Contratto".
Quello che voglio fare in uno dei miei progetti è forzare la classe a inviare un messaggio per farlo basandosi sull'implementazione di un'interfaccia. Ad esempio,
class MyClass
{
IMyInterfact someKindOfThing;
public MyClass(IMyInterface something)
{
this.someKindOfThing = something;
}
}