Skip to main content

Ano ang isang disenyo sa pamamagitan ng kontrata at reg ;?

Disenyo sa pamamagitan ng Kontrata at Reg;ay isang pamamaraan na ginamit upang bumuo ng software na umaasa sa pagtatatag ng mahusay na tinukoy na mga parameter ng interface, o mga kontrata, para sa lahat ng bahagi ng isang programa.Bagaman ang disenyo sa pamamagitan ng kontrata at reg;Maaaring matingnan bilang isang istilo ng pag-unlad ng konsepto na ipinatupad sa pamamagitan ng dokumentasyon o pagmomolde, mas malawak na ginagamit upang sumangguni sa isang mekanismo ng katutubong o third-party sa loob ng ilang mga wika sa programming na talagang nangangailangan ng implicit coding ng mga kontrata sa loob ng isang programa.Ang layunin sa paggamit ng disenyo sa pamamagitan ng kontrata at reg;ay ang isang programa ay bubuo at, sa kalaunan, naka -code sa isang mas kumpletong fashion na nag -aalis ng mas maraming mga pagkakamali, habang ang pagpapatupad ng mga kontrata sa pamamagitan ng pagsuporta sa wika ay ginagawang madaling matagpuan at nakunan ang mga error.Ang isang programa na gumagamit ng mga kontrata para sa mga pag -andar at klase ay maaaring magkaroon ng isang mas modular na disenyo kung saan ang mga indibidwal na klase ay maaaring magamit muli sa iba pang mga programa dahil sa malinaw na kahulugan ng kanilang mga kontrata.

Ang batayan para sa disenyo ng Kontrata at Reg;Ang pilosopiya ng Programming ay ang ideya ng mga kontrata sa negosyo sa real-world.Sa modelong ito, ang bawat pamamaraan at klase sa isang programa na nakatuon sa object ay tumutukoy sa isang kontrata kung saan dapat sumunod ang anumang pamamaraan o bagay na nakikipag -ugnay dito.Ang bawat klase ay maaari ring magkaroon ng isang kontrata, na tinatawag na isang klase ng invariant, na dapat itong sundin sa loob upang matiyak na ang mga labas ng mga kontrata ay hindi nakompromiso ang kakayahang gumana.at ang mga post-kondisyon.Ang dalawang bahagi ng disenyo sa pamamagitan ng Kontrata at Reg;Model Tukuyin ang estado ng programa bago tinawag ang isang pamamaraan at ang estado ng programa pagkatapos makumpleto ang pamamaraan.Ang iba pang mga bahagi ng isang kontrata ay maaaring mag-iba sa pamamagitan ng pagpapatupad ngunit maaaring isama ang mga cross-references sa iba pang mga module, mga kondisyon ng pag-synchronise at mga kinakailangan sa pagkakasunud-sunod.Madaling ma -map at mahulaan.Ang pagpapatupad ng mga kontrata, alinman sa pamamagitan ng paggamit ng mga assertions o iba pang mga mekanismo, ay tinitiyak din na ang programa ay hindi tatangkang isagawa kung may paglabag sa mga kontrata, dahil ang anumang output na ginawa sa estado na iyon ay technically ay hindi wasto.Kapag ipinatupad bilang isang tampok na katutubong wika, disenyo ng Kontrata at Reg;maaaring makatulong upang matiyak na ang isang pangwakas na produkto ay magpapatakbo tulad ng inaasahan na may kaunting pagkakataon para sa hindi inaasahang mga pagkakamali.

Ang ilan sa mga komplikasyon na gumagamit ng disenyo ng Kontrata at Reg;Kasama sa pilosopiya ang mas mahabang oras ng disenyo at mas maraming butil na pag -unlad ng isang sistema bago magsimula ang pag -cod, na kung minsan ay maaaring maging mahirap sa isang malaking proyekto.Mas praktikal, ang mekanismo ng pagpapatunay ng kontrata na ginamit sa isang wika ng programming na katutubong sumusuporta sa mga kontrata ay maaaring pabagalin ang pagpapatupad ng programa.Isang hindi magandang pag -unawa sa disenyo sa pamamagitan ng kontrata at reg;Ang pamamaraan ay maaaring humantong sa isang programa na gumagamit ng mga kontrata upang maisagawa ang pangunahing pagsuri ng error, na potensyal na humahantong sa isang application na madaling kapitan ng biglaang pag -crash pagkatapos ng paglabas.