Skip to main content

Mi az osztály invariáns?

Az objektumorientált számítógépes programozásban és tervezésben az osztály -invariáns egy olyan szabálykészlet, amely felhasználható annak meghatározására, hogy létezik -e egy objektumpéldány érvényes állapotban.Tervezési szempontból az osztály invariáns egy olyan határkészlet, amely között az objektumon belüli adatokat megfelelő, funkcionális állapotban kell figyelembe venni.Az osztály invariáns meghatározható a tervezési dokumentációban vagy a forráskód -megjegyzésekben, vagy bizonyos programozási nyelveken közvetlenül megvalósítható a cselekvési számítógépes kódban.Egy olyan program, amely kódolt invariánsokat és állításokat használ, a programot a végrehajtás megszüntetésére vagy különféle hibák dobására okozhatja, ha az invariáns feltételek nem teljesülnek.A szokásos hibaellenőrzéssel ellentétben az osztályváltozókat általában csak arra használják, hogy biztosítsák az osztály belső megvalósítását, és általában nem szerepelnek a nyilvános dokumentációban vagy a programozási interfészekben.Alapvetően egy osztály állításának gyűjteménye.Az állítás, ismét egyszerűen, egy állítás, amely ellenőrzi az osztály állapotának egy részét, és a program végrehajtásának folytatása érdekében igaznak kell lennie.Az állítás egyik példája egy olyan állítás, amely biztosítja, hogy az adott egész szám mindig 1 és 10 között legyen.Az objektum a meghatározott tartományokban található.A különbség az osztály invariánsok használata és a standard hibaellenőrzés között azonban az, hogy az invariánsokat és állításokat elsősorban olyan hibák rögzítésére használják, amelyek nem fordulhatnak elő, hacsak a kódban nincs belső hiba.Egy másik különbség az, hogy a standard hibaellenőrzés inkább a helyreállítás és a programvezérlés áramlásának változásait vonja maga után, míg az invariáns hiba eredménye a program megszűnésének.A legtöbb program megszűnik, amikor az osztály invariáns ellenőrzése meghibásodik, mert az objektum kompromittált állapotban van, és tervezési nézetből nem képes teljesíteni annak előfeltételeit és utóbetegségeit, amelyek szükségesek a tervezési szerződés betartásához.

Az egyik az egyikAz osztály invariáns tulajdonságai az objektumorientált programozási nyelvekben, amelyekben implicit módon meghatározzák, az, hogy az invariáns egy olyan mechanizmus, amelyet bármely alosztály örököl.Ez megakadályozza az alosztályt, hogy felülbírálja a szülő osztályban elvégzett invariáns ellenőrzéseket.Végül, ez azt jelenti, hogy egy alosztály nem tudja megsérteni a szuperosztály által létrehozott tervezési szerződést, amely kiszámíthatatlan eredményeket vagy nehezen megtalálható programhibákat okozhat.