Design by Contract (DbC) ఒక పద్ధతి మరియు దానిని పిలిచేవారి మధ్య సంబంధాన్ని ఔపచారిక ఒప్పందం వలె పరిగణిస్తుంది, ఇది మూడు విషయాలతో నిర్వచించబడుతుంది: పూర్వ పరిస్థితులు (పిలిచేవాడు గ్యారంటీ ఇవ్వాలిసిన వాటి), పోస్ట్ పరిస్థితులు (పద్ధతి ప్రతిఫలంగా గ్యారంటీ ఇచ్చేది) మరియు నిర్ధారణలు (వస్తువుకు ఎప్పుడూ నిజం ఉండేది).
మూడు బాధ్యతలు
PRECONDITION → caller's duty: inputs/state the method requires to run correctly
POSTCONDITION → method's duty: what it promises on return (if precondition held)
INVARIANT → always-true property of the object, before and after every method
