Ez a cikk egy tükör gépi fordítás, kérjük, kattintson ide, hogy ugorjon az eredeti cikkre.

Nézet: 15843|Válasz: 0

[Forrás] Statikus módszerek és egy-egy minták elemzése

[Linket másol]
Közzétéve 2019. 10. 10. 18:15:05 | | |
Gyakran tapasztalunk ilyen zavart a programozásban, egyes függvényeket singletonokkal, míg néhány függvényt statikus módszerekkel oldunk meg, tehát mik a statikus módszerek és singletonok elvei és használati forgatókönyvei? Tisztázzuk ma az ügyet.

1. Először nézzük meg a különbséget a statikus és a nem-statikus módszerek között?

        Sok programozó megérti, hogy a statikus módszerek először betöltődnek, a nem-statikus módszerek később töltődnek be, a statikus módszerek mindig léteznek a memóriában, a nem-statikus módszerek pedig nem. Ezért ajánlott nem-statikus módszert alkalmazni. Először is, helytelen hangsúlyozni, hogy ez a megértés téves.

        Először is, elemezzük memóriából: amikor az alkalmazás inicializálódik, a CLR (a CLR a Common Language Runtime) szintén egy futási idejű környezet, mint a Java virtuális gép, amely felelős az erőforrás-kezelésért (memória allokáció és szemétgyűjtés stb.), és biztosítja az alkalmazás és az operációs rendszer közötti szükséges elkülönítést. A CLR-nek két különböző fordítási neve van: a Common Language Runtime és a Common Language Runtime. Minden folyamathoz egy címteret rendel a folyamatban elérhető térben, amely a kezelt halom. A kezelt halom több régióra van osztva, amelyek közül a legfontosabb a hulladékgyűjtő halom (GC halom) és a töltőhalom (Loader Heap), amelyet objektumpéldányok tárolására használnak, és amelyet a GC kezel. A Loader Heap legfontosabb információi a MethodTable táblán keresztül a metaadatokkal kapcsolatos adatok, mint például az alaptípusok, statikus mezők, implementációs felületek és minden módszer. A Loader Heap nem fogadja el a GC irányítását, és az életciklusa a teremtéstől a pusztulásig tart. Más szóval, ha egy osztály betöltődik, az osztály statikus és nem-statikus módszerei is tárolódnak a Load Heap MethodTab táblájában, GC vezérlés nélkül, és mindegyik az első töltésnél a memóriában lakik.

        Mi a különbség a statikus és a nem-statikus módszer között? A különbség az, hogy objektum létrehozásakor a statikus metódusnak csak másolata van, míg a nem statikus metódus minden új objektumhoz egy másolatot másolt az adott példányról szóló információt a GC Heap-re, és egyidejűleg az új objektumot a stackre helyezi. A stack mutató által mutatott cím az a memóriacím, amelyet épp most másoltak a GC Heap-re. Ezért a módszerhívás sebessége szempontjából a statikus módszerek gyorsabbak, mert a nem-statikus módszereket kell megvalósítani és memóriát kell osztani.

A programozás története szempontjából a korai strukturált programozás szinte minden módszere statikus módszer volt, és az instanciációs módszerek bevezetése objektumorientált programozás kérdése volt, így az instanciációs módszer nem a hatékonyság és a memória futtatásának problémájának megoldása volt. Célja, hogy a fejlesztés mintázatosabbá és objektumorientáltabbá tegye.

        A fenti elemzésből levonható a következmény: 1. A statikus és a nem-statikus módszer a megoldásmód megkülönböztetése. 2. Ha öröklés, polimorfizmus vagy egy metódus nem kapcsolódik az osztály objektumához, akkor statikus metódust válassz, például eszközosztályt.        

2. Mi a különbség az egy-egy mód és a statikus módszer között?

        Néha mérnöki szinten kell fenntartanunk egy információt, például néhány konfigurációs attribútumot, amelyek futásidőben töltődnek, és amelyek az alkalmazás egész élete alatt fenn kell lenniük, nyilvánosak, így csak egy példány szükséges. Jelenleg fontolóra vesszük a singleton vagy statikus módszer használatát az adatok fenntartására, de ekkor az adatokat objektumorientált módon szerezzük meg, egy-egy módszert használunk.

        Először is, a statikus módszerek osztályalapúak, az egyesek pedig objektum-alapúak. Ha a felbontás mintázata objektum-alapú, használjunk egy-egy megoldást, különben statikus megközelítést. Például az osztályokat örökölni, interfészeket implementálni, késleltetni az inicializációt, átírni az övosztályokat stb., hogy singletonokat használj, másodszor, a statikus módszerek folyamatorientáltak, a singletonok pedig objektumorientáltak. Harmadszor, a statikus attribútumváltozókat nem töröli a GC, így az egyesleges objektumokat nem töröli a GC, és a statikus metódusokban generált objektumok akkor szabadulnak fel, amikor a statikus metódust végrehajtják.




Előző:Distributed Messaging Middleware Practice (Ni Wei tollából) teljes kínai PDF
Következő:Dell Latitude 5501 laptop leállítása és automatikus bekapcsolása megoldódott
Lemondás:
A Code Farmer Network által közzétett összes szoftver, programozási anyag vagy cikk kizárólag tanulási és kutatási célokra szolgál; A fenti tartalmat nem szabad kereskedelmi vagy illegális célokra használni, különben a felhasználók viselik az összes következményet. Az oldalon található információk az internetről származnak, és a szerzői jogi vitáknak semmi köze ehhez az oldalhoz. A fenti tartalmat a letöltés után 24 órán belül teljesen törölni kell a számítógépéről. Ha tetszik a program, kérjük, támogassa a valódi szoftvert, vásároljon regisztrációt, és szerezzen jobb hiteles szolgáltatásokat. Ha bármilyen jogsértés történik, kérjük, vegye fel velünk a kapcsolatot e-mailben.

Mail To:help@itsvse.com