Java tsab ntawv tsim qauv – Wb tshawb

Java Script Design Patterns

Java tsab ntawv tsim qauv

Txheej txheem cej luam: Nyob rau hauv daim ntawv no peb yuav tham txog cov qauv siv JavaScript txawv tsim. Feem ntau cov developers xav paub cov caij nyoog los tsim zoo tagnrho txawv uas yuav siv cov kev pab cuam. Yuav tsum qhia qhov tseeb, yog tsis muaj qhob lus teb rau lo lus nug no muaj los tsis muaj tus formulae uas yuav xyuas kom paub qhov tseeb tsim txawv uas yuav siv ib cov zauv twg muaj. Li ntawd nyob rau hauv cov teeb meem zoo li no, peb yuav tsum tau muaj ib tug khov ncia tus tsim cov ntawv thiab cov teeb meem txog lawv tsis, peb yuav tsum tau ua ib tug zoo li yuav tsum txiav txim rau uas tsim txawv uas yuav siv yam kev mob.

Taw qhia:
Ib cov qauv tsim yog ib reusable tshuaj uas yuav tsum muaj ntaub ntawv heev tab sis rov leb software tsim thiab kev loj hlob. Qauv tsim tau thiab yuav ua ib li templates siv yuav kom daws tau cov teeb meem tshwm sim. Qauv tsim muaj peb cov kev pab cuam uas puas loj:

  • Lawv yog proven dlaws: Qauv tsim muab ib khoom mus kom ze rau txoj kev loj hlob software thiab siv tau cov pov thawj hom kev kawm.
  • Yuav muab tau yooj yim reused: Qauv tsim muaj conceptual thiab muab tsis muab kem uas suits peb kev kawm. No feature ua rau cov tsim cov robust ntau thiab nws yuav rov siv rau tej yam mob zoo sib xws.
  • Yog raws qauv: Txhua cov qauv tsim pib ua ib predefined koj muab qauv thiab cov lus uas yuav siv tau los qhia cov ntsiab teeb meem loj.

Yeej tsis tsim qauv qhia tus tov pes tsawg rau ib qho teeb meem. Nws yog ib qho tseem ceeb tias lub luag hauj lwm ntawm tus qauv yog muab ib tug muab tswvyim.

Hom qauv tsim
Qauv tsim yuav raug faib mus rau nram qab no sub peb pawg:

  • Creational tsim txawv : Nyob rau hauv pawg no tus tsim qauv hauv qab no lub caij nplooj zeeg :
    • Singleton
    • Constructor
    • Koom xwm
    • Paub daws teeb
    • Tsab
    • Builder
  • Tsim yam ntxwv txawv : Nyob rau hauv pawg no tus tsim qauv hauv qab no lub caij nplooj zeeg :
    • Decorator
    • Facade
    • Flyweight
    • Adapter
    • Npe
  • Tsim coj cwj pwm txawv : Nyob rau hauv pawg no tus tsim no txawv lub caij nplooj zeeg :
    • Iterator
    • Qhua
    • Mloog
    • Observer

Cov qauv nyob hauv JavaScript:
Cov qauv hauv qab no yog kheev siv hauv JavaScript:

  • Txawv constructor
  • Module txawv
  • Txawv singleton
  • Txawv observer
  • Sawvdaws txawv
  • Tsab qauv
  • Txawv hais kom ua
  • Txawv facade
  • Hoobkas txawv
  • Txawv decorator
  • Txawv flyweight

Rau lub txawv Constructor:
As per tus tsav haus dejcawv classical oriented programming tswvyim, tus constructor yog ib yam ntawm txoj kev uas kws khomob yuav siv los ua thaj ntawm ib yam twj paj nruas hauv cov cim xeeb tshwj xeeb. Hauv JavaScript creation nruas yog ua li cas siv ib yam ntawm cov lus hauv qab no peb le caag:

Qhia 1: Le caag peb siv hauv JavaScript los tsim ua tej khoom siv

[Chaws]

// Mus kom ze 1

Var newObject = {};

//Mus kom ze 2

Var newObject = Object.create(thov);

//Mus kom ze 3

Var newObject = nruas tshiab();

[/Chaws]

Rau qhov peb mus kom ze, cov kwv yog tsim siv tus kwv constructor uas tsis muaj tus nqi yog dhau los teev. Muaj ntau ntau txoj kev los laij qhov tseem ceeb ib created tshiab khiv tawm tsam. Cov no yog:

Qhia 2: Txoj kev los laij qhov tseem ceeb rau ib constructor

[Chaws]

//Mus kom ze 1

newObject.someKey = "Nyob zoo ntiaj teb"

//Mus kom ze 2

newObject[someKey] = "Ntiaj teb nyob zoo"

//Mus kom ze 3

Object.defineProperty( newObject, “someKey”, {

tus nqi : "Nyob zoo World"

writable : tseeb

enumerable : tseeb

configurable : tseeb

);

[/Chaws]

Rau lub txawv Singleton:
Peb yeej paub tias rau lub txawv singleton txwv tsis pub cov creation ntawm ib yam twj paj nruas rau ib qho lom. Singleton txawv yog DVR tau tsim ib lub chav kawm ntawv nrog rau ib txoj kev uas yuav tsim ib tug tshiab lom ntawm tus tsav haus dejcawv thaum tsis muaj lwm zaus nyob ua ib ke. Hauv JavaScript singletons tswj ib qho chaw sib namespace uas yog isolates yuav siv los ntawm lub ntiaj teb no namespace. Hauv JavaScript, singleton yog DVR yam nram qab no:

Qhia 3: Singleton yuav siv hauv JavaScript

[Chaws]

Var mySingleton = (muaj nuj nqi () {

// Lom stores ib siv rau cov Singleton

Var lom;

init muaj nuj nqi() {

// Singleton

// Lwm txoj kev thiab tus tsiaj ntawv

privateMethod muaj nuj nqi(){

console.log( “Kuv tabtom kho” );

}

Var privateVariable = “Lwm yam kuj txhij”;

Var privateRandomNumber = Math.random();

rov qab mus {

// Txoj kev pej xeem thiab tsiaj ntawv

publicMethod: muaj nuj nqi () {

console.log( “Pej xeem tau pom kuv!” );

},

publicProperty: “Kuv kuj pej xeem”,

getRandomNumber: muaj nuj nqi() {

rov qab mus privateRandomNumber;

}

};

};

rov qab mus {

// Tau lub Singleton lom yog tias ib tug tshwm sim

// los yog tsim ib tug yog nws tsis

getInstance: muaj nuj nqi () {

Yog hais tias ( !lom ) {

lom = init();

}

rov qab mus lom;

}

};

})();

Var myBadSingleton = (muaj nuj nqi () {

// Lom stores ib siv rau cov Singleton

Var lom;

init muaj nuj nqi() {

// Singleton

Var privateRandomNumber = Math.random();

rov qab mus {

getRandomNumber: muaj nuj nqi() {

rov qab mus privateRandomNumber;

}

};

};

rov qab mus {

// Yeej tsim ib tug tshiab Singleton lom

getInstance: muaj nuj nqi () {

lom = init();

rov qab mus lom;

}

};

})();

// Pab:

Var single1 = mySingleton.getInstance();

Var single2 = mySingleton.getInstance();

console.log( singleA.getRandomNumber() === singleB.getRandomNumber() ); // tseeb

Var badSingle1 = myBadSingleton.getInstance();

Var badSingle2 = myBadSingleton.getInstance();

console.log( badSingleA.getRandomNumber() !== badSingleB.getRandomNumber() ); // tseeb

[/Chaws]

Xws li ib lub GoF, yog muaj nyob rau lub sijhawm hauv qab no singleton:

  • Muaj yuav tau nyob ua ib ke raws nraim rau lom ntawm lub nruas.
  • Qhov tib tug lom yuav tsum extensible los sub-classing nws.

Rau lub txawv Observer:
Nyob rau lub txawv Observer, tus kwv (tseem hu ua li ntawv) yeej muaj npe ntawm cov khoom nyob ntawm nws hu ua observers. Tus kawm yuav ceeb rau lub observers txiav txim uas tau muaj tshwm sim, siv cov broadcast mechanism. Yuav ua raws li tus Observer txawv yog muaj li nram qab no.

Qhia 4: Daim ntawv uas muaj tub muaj ib cov ntawv Observers

[Chaws]

ObserverList muaj nuj nqi(){ this.observerList = [];} ObserverList.prototype.Add = muaj nuj nqi( obj ){ rov qab mus this.observerList.push( obj );}; ObserverList.prototype.Empty = muaj nuj nqi(){ this.observerList = [];}; ObserverList.prototype.Count = muaj nuj nqi(){ rov qab mus this.observerList.length;}; ObserverList.prototype.Get = muaj nuj nqi( Performance Index ){ Yog hais tias( Performance Index > -1 && Performance Index < this.observerList.length ){ rov qab mus this.observerList[ Performance Index ]; }}; ObserverList.prototype.Insert = muaj nuj nqi( obj, Performance Index ){ Var pointer = -1; Yog hais tias( Performance Index === 0 ){ this.observerList.unshift( obj ); pointer = Performance index; }Yog hais tias tus( Performance Index === this.observerList.length ){ this.observerList.push( obj ); pointer = Performance index; } rov qab mus pointer;}; ObserverList.prototype.IndexOf = muaj nuj nqi( obj, startIndex ){ Var kuv = startIndex, pointer = -1; Thaum( Kuv < this.observerList.length ){ Yog hais tias( this.observerList[Kuv] === obj ){ pointer = kuv; } i ; } rov qab mus pointer;}; ObserverList.prototype.RemoveAt = muaj nuj nqi( Performance Index ){ Yog hais tias( Performance Index === 0 ){ this.observerList.shift(); }Yog hais tias tus( Performance Index === this.observerList.length -1 ){ this.observerList.pop(); }}; // Cuag ib yam twj paj nruas uas ib extensionfunction cuag( Extension, obj ){ rau ( Var yaum sij hauv extension ){ obj[qhov tseem ceeb] = extension[qhov tseem ceeb]; }}

[/Chaws]

Qhia 5: Hais

[Chaws]

Kawm muaj nuj nqi(){ this.observers = ObserverList tshiab();} Subject.prototype.AddObserver = muaj nuj nqi( observer ){ this.observers.Add( observer );}; Subject.prototype.RemoveObserver = muaj nuj nqi( observer ){ this.observers.RemoveAt( this.observers.IndexOf( observer, 0 ) );}; Subject.prototype.Notify = muaj nuj nqi( ntsiab lus teb ){ Var observerCount = this.observers.Count(); rau(Var kuv = 0; Kuv < observerCount; i ){ this.observers.Get(Kuv).Hloov tshiab( ntsiab lus teb ); }};

[/Chaws]

Nyob rau hauv qhov piv txwv li hais los saum toj, siv cov Observer Cheebtsam, peb tam sim no txhais kom meej:

  • Ib lub pob rau ntxiv tshiab observable checkboxes mus rau sab
  • Ib txoj kev los tswj checkbox uas yuav ua ib lub kawm, tso lwm checkboxes lawv yuav tsum tau xyuas
  • Ib lub taub ntim rau cov tshiab checkboxes ntxiv rau

Cov HTML code puas raws li

Qhia 5: Cov HTML code

[Chaws]

<khawm daim id =”addNewObserver”>Ntxiv tshiab Observer checkbox</khawm><daim id input =”mainCheckbox” yam =”checkbox”/><div daim id =”observersContainer”></div>

[/Chaws]

Txoj kev: Ces qhov tsab xov xwm no kuv tau tham tau lus txog cov JavaScript tsim qauv. Tus tsim qauv yog muaj feem xyuam rau txhua yam lus zoo ib yam twj paj nruas oriented lus java thiab tseem hais lus scripting li JavaScript. Tab sis muaj ib co sib txawv li cas thiab peb tau pom nws nyob rau cov qauv no saum toj no. Ces los xaus kev sab laj peb yuav hais tias cov qauv tsim yog siv los qhia cov kua rau feem ntau tshwm sim teeb meem. Thiab thov koj nco ntsoov hais tias yog cov qauv siv

  • Cov kua Proven
  • Yooj yim siv tau
  • Yog paub qhia tej lo

Vam tias koj tau to taub lub ntsiab lus thiab nws yuav pab kom koj siv rau koj tus kheej yog ib qhov. Nyeem ntawv zoo siab.

Nthuav ntau cov khoom rau hauv JS — Koj yuav tsum nyeem

Introduction to AngularJS

Taw rau cov Apps los Zurb

Yuav ua li cas teev CSS3 zog los ntawm tsab ntawv Java?

============================================= ============================================== Yuav zoo TechAlpine phau ntawv rau Amazon
============================================== ---------------------------------------------------------------- electrician ct chestnutelectric
error

Txaus siab rau qhov blog? Tshaj tawm lus thov :)

Follow by Email
LinkedIn
LinkedIn
Share