Skip to main content

Ano ang isang klase ng invariant?

Sa object oriented computer programming at disenyo, ang isang klase ng invariant ay isang hanay ng mga patakaran na maaaring magamit upang tukuyin kung ang isang halimbawa ng bagay ay umiiral sa isang wastong estado.Mula sa isang pananaw sa disenyo, ang isang invariant ng klase ay isang hanay ng mga hangganan sa pagitan ng kung saan ang data sa loob ng isang bagay ay dapat mahulog upang isaalang -alang sa isang maayos, pagganap na estado.Ang isang klase ng invariant ay maaaring matukoy sa dokumentasyon ng disenyo o mga komento ng source code o, sa ilang mga wika sa programming, ay maaaring direktang maipatupad sa aksyon na code ng computer.Ang isang programa na gumagamit ng mga naka -code na invariants at assertions ay maaaring maging sanhi ng programa na itigil ang pagpapatupad o magtapon ng iba't ibang mga error kapag hindi natutugunan ang mga invariant na kondisyon.Hindi tulad ng karaniwang pagsuri ng error, ang mga invariant ng klase sa pangkalahatan ay ginagamit lamang para sa layunin na tiyakin na ang panloob na pagpapatupad ng isang klase ay gumagana, at karaniwang hindi sila nakalista sa mga pampublikong dokumentasyon o mga interface ng programming.Mahalagang isang koleksyon ng mga assertions para sa isang klase.Ang isang assertion, muli sa mga simpleng termino, ay isang pahayag na sinusuri ang ilang bahagi ng estado ng klase at dapat suriin ang totoo para magpatuloy ang pagpapatupad ng programa.Ang isang halimbawa ng isang assertion ay isang pahayag na nagsisiguro na ang isang naibigay na integer ay palaging nasa pagitan ng 1 at 10. Kapag ginagamit ang isang invariant ng klase, nasuri ang mga assertions para sa lahat ng mga kaugnay na bahagi ng data na hawak ng bagay, mahalagang patunayan na ang lahat ng data saAng object ay nasa loob ng tinukoy na mga saklaw.Ang pagkakaiba sa pagitan ng paggamit ng mga invariants ng klase at karaniwang pag -check ng error, gayunpaman, ay ang mga invariant at assertions ay nakararami na ginagamit upang makuha ang mga pagkakamali na hindi dapat mangyari maliban kung mayroong isang intrinsic flaw sa code.Ang isa pang pagkakaiba ay ang karaniwang pag -check ng error ay may posibilidad na kasangkot ang pagbawi at mga pagbabago sa daloy ng control control, samantalang ang resulta ng isang invariant na pagkabigo ay dapat na pagwawakas ng programa.Ang dahilan ng karamihan sa mga programa ay nagtatapos kapag ang isang klase ng invariant check ay nabigo ay dahil ang bagay ay nasa isang nakompromiso na estado at hindi magagawa, mula sa isang view ng disenyo, upang matupad ang mga preconditions at post-conditions na kinakailangan upang sumunod sa kontrata ng disenyo nito.

Isa saAng mga katangian ng isang klase na invariant sa object oriented programming language kung saan sila ay tahasang tinukoy ay ang invariant ay isang mekanismo na minana ng anumang mga subclass.Pinipigilan nito ang isang subclass mula sa pag -override ng anumang mga invariant na tseke na isinasagawa sa klase ng magulang.Sa huli, nangangahulugan ito na ang isang subclass ay hindi masira ang kontrata ng disenyo na itinatag ng superclass, na maaaring magdulot ng hindi mahuhulaan na mga resulta o mga error sa programa ng mahirap na mahanap.