Программирование по контракту — различия между версиями
Sergej (обсуждение | вклад) (→Пример) |
Sergej (обсуждение | вклад) (→Пример) |
||
| Строка 21: | Строка 21: | ||
intMINUTES; | intMINUTES; | ||
intSECONDS; | intSECONDS; | ||
| − | |||
getHours(); | getHours(); | ||
{ | { | ||
returnHOURS; | returnHOURS; | ||
| − | } | + | } |
| − | |||
getMinutes(); | getMinutes(); | ||
{ | { | ||
return MINUTES; | return MINUTES; | ||
} | } | ||
| − | |||
getSeconds() | getSeconds() | ||
{ | { | ||
return SECONDS; | return SECONDS; | ||
} | } | ||
| − | |||
setHours(newHOURS); | setHours(newHOURS); | ||
{ | { | ||
HOURS = newHOURS; | HOURS = newHOURS; | ||
} | } | ||
| − | |||
setMinutes(newMINUTES); | setMinutes(newMINUTES); | ||
{ | { | ||
Версия 15:46, 15 июня 2013
Программирование по контракту обеспечивает проверку предусловий и постусловий при выполнении методов классов, пользовательских функций. Также немаловажную роль в правильности написания функций играют инварианты.
Содержание
Предусловие
| Определение: |
| Предусловие - должно быть выполнено до исполнения действия. |
Постусловие
| Определение: |
| Постусловие - должно быть выполнено после исполнения действия. |
Инвариант
| Определение: |
| Инвариант - определяет глобальные свойства некоторого класса, которые должны соблюдаться после его создания на протяжении всего времени жизни. |
Пример
class Time
{
intHOURS;
intMINUTES;
intSECONDS;
getHours();
{
returnHOURS;
}
getMinutes();
{
return MINUTES;
}
getSeconds()
{
return SECONDS;
}
setHours(newHOURS);
{
HOURS = newHOURS;
}
setMinutes(newMINUTES);
{
MINUTES = newMINUTES;
}
setSeconds(newSECONDS)
{
SECONDS = newSECONDS;
}
}