hvordan automatisk deler midlertidige variabler i delphi

, denne artikel behandles korrekt brug af midlertidige variabler, opdeling af upassende motivationer variabler, og hvordan man bruger castalia til automatisk at splitte dem. jeg vil gerne tage fat på et spørgsmål, som jeg får ofte fra folk, der oplever castalia for første gang.  , når de ser på den refactorings, ser de ting som " ekstrakt metode " og " og omdøbe de lokale variabel ", som er temmelig selvforklarende.   at, du kan finde ud af, hvad de er baseret på det navn.   vil de se " flækkede midlertidige variable " og de er ikke, hvad jeg skal tro.  , det er ikke en meget intuitiv refactoring og for det meste, det bliver ignoreret, på trods af atutrolig nyttigt.,, i en nøddeskal, det refactoring anvendes, når " de har en lokal variabel, der er tildelt mere end én gang, og der er ikke et loop variabel eller indsamling af variable " (martin fowler i refactoring: at forbedre udformningen af eksisterende kode). der er masser af anvendelser lokale variabler.   nogle af disse anvendelser, er naturligvis kræve, at den variable, der udpeges mere end én gang.   f.eks, loop - variabler, ændrer sig, hver gang rundt om et loop (f.eks. jeg ved jeg: = 0 til 10).   opkrævning af midlertidig variabler indsamle en værdi, der er opbygget i løbet af en metode, som regel med et mønster. det ligner " somevar: = somevar + somenewvalue. ",, andre midlertidige variabler anvendes til at holde resultatet af en del af koden for let -ud senere.   disse variabler bør fastsættes én gang.  , hvis der er mere end én gang, og det er et klart tegn på, at den variable har mere end én ansvar i funktion eller procedure.  , det er forvirrende, at læse og svær at opretholde, som det er svært at være sikker på et givet øjeblik, hvor ansvaret er fulfulled.   hver ansvar bør være repræsenteret ved en selvstændig variabel, at kodeksen lettere at læse og opretholde., der er hvor " flækkede midlertidige variable " refactoring kommer.   vil det tage en variabel, som har flere ansvarsområder og opdeles i forskellige variabler, der har enestående ansvar.  , lad os arbejde gennem et eksempel:,,,,, procedure tform1. updatecoordinates;,var -, vikar: heltal, begynder, temperatur: = shape1. top. statusbar1. paneler [0]. tekst: = inttostr (temperatur), temperatur: = shape1. venstre, statusbar1. paneler [1] tekst: = inttostr (temperatur);,,,,,,, ved denne metode, plader, en status, bar er ajourført med de koordinater i en anden form.den variabel, der hedder " vikar " har flere ansvarsområder i metoden.det er både toppen og venstre værdier.vi kan (og skal) dele dette ansvar.,, har castalia udføre denne delte lægger vi markør i navn af den variable dele (alle henvisninger til temperatur vil gøre, bare klik på det så markøren ligger i ordet " vikar ").vælg " flækkede midlertidige variable " fra refactoring menu (enten fra redaktør forbindelse menu eller de vigtigste edit menu).en dialog rubrik synes, fortæller os, at vi skal dele temperatur, som er af typen heltal, i to variabler, og anmoder om, at navnet på den nye variabel.vi går ind shapeleft som ny variabel navn og klik okay.,,,,, efter at det refactoring opdagelsesrejsende ud med de foreslåede ændringer.bemærker, at nogle af ændringerne er kontrolleret af misligholdelse, andre ikke.castalia forudsætter, at den første opgave for den variable er fortsat med de eksisterende variable, og andet ansvar er så fyldt med nye variabel.hvis de ikke er indforstået med denne antagelse, du kan kontrollere og uncheck disse ændringer, som du vil,.,,,,, vi klik " gå " (som er blevet omdøbt til ", anvende " i castalia 2.2), og castalia vil gøre de udvalgte ændringer.nu har vi en procedure, der ser sådan ud:,,, procedure tform1. updatecoordinates;, var -, vikar, shapeleft: heltal, begynder, temperatur: = shape1. top. statusbar1. paneler [0]. tekst: = inttostr (temperatur), shapeleft: = shape1. venstre, statusbar1. paneler [1] tekst: = inttostr (shapeleft);,; det er forbedret.selvfølgelig, en yderligere refactoring kunne gøre denne kodeks endnu bedre.ved hjælp af " og omdøbe de lokale variable " at omdøbe vikar for noget som shapetop ville være en klar forbedring.koden kan gøres endnu mere præcist ved hjælp af " i overensstemmelse med midlertidige variable " at eliminere de variabler, helt. i denne artikel, vi har lært om hensigtsmæssig brug af midlertidige variabler og anvendelse af castalia er " flækkede midlertidige variable " refactoring til forbedring af de områder, hvor vi kan få misbrug af dem.yderligere oplysninger om castalia er andre refactorings findes her.

Split Temporary Variable dialog box



Previous:
Next Page: