former for design prototype -

prototype - henviser til at skabe to formål, samtidig med at præstationer for øje.denne type af design - kommer under creational mønster, som dette mønster er en af de bedste måder at skabe et objekt. dette mønster vil gennemføre en prototype - grænseflade, som siger, at skabe en klon af den aktuelle objekt.dette mønster er anvendt ved oprettelsen af objekt, der direkte er dyrt.f.eks. har til formål at skabe en kostbar database efter operation.vi kan cache genstand, vender tilbage til sin klon på næste anmodning og ajourføre databasen og, når det er nødvendigt, således at database opkald., gennemførelse, vil vi skabe en abstrakt klasse, form og konkrete klasser af, form, klasse.en klasse, shapecache defineres som et næste skridt, som opbevarer objekter i en form, hashtable, og returnerer deres klon, når der anmodes herom, prototyppatterndemo, vores demo - klasse, shapecache, fag for at få en, form, mål, trin 1, skabe en abstrakt klasse gennemførelse, clonable interface.,, form -, offentlige abstrakt klasse form gennemfører cloneable (private snor id, beskyttede snor type abstrakt tomrum draw(); offentlige snor gettype() {tilbage type} offentlige snor getid() {tilbage id.} offentlige tomrum setid (string - id) (this.id = id.} offentlige formål clone() {objekt klon = ugyldig; prøv {klon = super. clone();} fangst (klon.notsupportedexception e) (f. printstacktrace();} tilbage klon;}}, trin 2, skabe konkrete klasser, at ovennævnte klasse.,, rektangel. java, offentlige klasse rektangel udvider form (offentlige rectangle() (type = "firkant"} @ tilsidesætte offentlige tomrum draw() {system. println ("indenfor rektangel: - draw() metode.");}}, square -, offentlige klasse square udvider form (offentlige square() (type = "firkant"} @ tilsidesætte offentlige tomrum draw() {system. println ("i.:: draw() metode.");}}, java,,, cirkel. offentlige klasse cirkel omfatter form (offentlige circle() (type = "cirkel"} @ tilsidesætte offentlige tomrum draw() {system. println ("inside cirkel: draw() metode. ")), trin 3, skabe et fag for at få konkrete klasser fra database og opbevarer dem i en hashtable,.,, shapecache -, import java.util.hashtable; offentlige klasse shapecache {menig static hashtable < snor, form > shapemap = nye hashtable < snor, form > c); offentlige statisk form getshape (string - shapeid) (form cachedshape = shapemap. kom (shapeid) afkast (form) cachedshape. clone();} //for hver form løb database forespørgsel og skabe form //shapemap. (shapekey, form); ////////vi er f.eks. ved at tilføje tre former for offentlige statisk tomrum loadcache() {cirkel cirkel = nye circle(); cirkel. setid (" 1 "); shapemap. (cirkel. getid(), cirkel).firkant = nye square(); square. setid ("2"); shapemap. (square. getid(), square); rektangel rektangel = nye rectangle(); rektangel. setid ("3"); shapemap. (rektangel. getid(), rektangel)}}, trin 4,,, prototypepatterndemo, anvendelse, shapecache klasse for at få kloner af former opbevares i, hashtable,.,, prototypepatterndemo -, offentlige klasse prototypepatterndemo {offentlige statisk tomrum vigtigste (string [] args) (shapecache. loadcache(); form clonedshape = (form) shapecache. getshape ("1"); system. println ("form:" + clonedshape. gettype()) form clonedshape2 = (form) shapecache. getshape ("2"); system. println ("form:" + clonedshape2. gettype()) form clonedshape3 =(form) shapecache. getshape ("3"); system. println ("form:" + clonedshape3. gettype())}}, løntrin 5, verificere output., form: cirkel kvadratisk form: et rektangel form:

Prototype Pattern UML Diagram



Previous:
Next Page: