Wzory Java Script konstrukcyjne – Zbadajmy

Java Script Design Patterns

Wzory Java Script konstrukcyjne

Przegląd: In this document we will talk about the different design patterns used in JavaScript. Most of the developers wonder to find out the exact or the ideal design pattern to be used in their program. To be honest, nie ma konkretnej odpowiedzi na to pytanie, czy nie ma żadnych wzorów, które mogłyby znaleźć właściwy wzorzec projektowy być stosowane w danej sytuacji. Tak więc w ramach takiej sytuacji, powinniśmy mieć mocną okrzyk wzorców projektowych i specyficznych problemów radzą sobie z, powinniśmy być w lepszej sytuacji, aby podjąć decyzję, na której wzornictwo ma być używany, w którym warunek.

Wprowadzenie:
Wzór konstrukcja jest wielokrotnego użytku roztwór, który może być stosowany do ponownego typowych problemów występujących w projektowaniu i rozwoju oprogramowania. wzorzec projektowy może być również określane jako szablony wykorzystywane do rozwiązywania typowych problemów. Wzorce projektowe mają trzy główne korzyści:

  • Są sprawdzone rozwiązania: wzór Projekt zapewni solidne podejście do tworzenia oprogramowania i wykorzystuje sprawdzone techniki.
  • Może być ponownie użyte: Wzorce projektowe są koncepcyjne i dostarczyć z roztworu skrzynki, która pasuje do naszych potrzeb. Ta cecha sprawia, że ​​wzory projektowania bardziej wytrzymałe i mogą być ponownie wykorzystywane w podobnych warunkach.
  • Wzory są wyraziste: Każdy wzorzec projektowy przedstawia predefiniowany zestaw struktury i słownictwo, które mogą być stosowane do rozwiązania większych problemów.

wzorzec projektowy nie zapewnia dokładne rozwiązanie problemu. Ważne jest, aby zauważyć, że rola wzorów jest dostarczenie systemu rozwiązanie.

Rodzaje wzorców projektowych
Wzorce projektowe można podzielić na następujące trzy kategorie podrzędne:

  • Kreacyjnych Pattern Design : W tej kategorii wchodzą następujące wzorce projektowe :
    • Singel
    • Budowniczy
    • Fabryka
    • Abstrakcyjny
    • Prototyp
    • Budowniczy
  • Strukturalny wzorzec projektowy : W tej kategorii wchodzą następujące wzorce projektowe :
    • Dekorator
    • Fasada
    • Flyweight
    • Adapter
    • Pełnomocnik
  • Behavioral Pattern Design : W tej kategorii następujące wzornictwo upadku :
    • iterator
    • Gość
    • Mediator
    • Obserwator

Wzorce w JavaScripcie:
Następujące wzory są powszechnie stosowane w JavaScript:

  • konstruktor Wzór
  • Moduł Wzór
  • Singleton
  • Wzorzec obserwator
  • mediator Wzór
  • Prototyp Wzór
  • Wzór poleceń
  • Fasada Wzór
  • Wzór fabryczne
  • dekorator Wzorzec
  • muszej Wzór

Konstruktor Wzór:
Według klasycznej koncepcji programowania obiektowego, konstruktor jest specjalnym rodzajem metody, która jest używana do utworzenia wystąpienia obiektu w pamięci. W JavaScript utworzenia obiektu odbywa się za pomocą jednego z następujących trzech podejść:

Listing 1: Trzy podejścia stosowane w JavaScript do tworzenia obiektów

[Code]

// Podejście 1

był NewObject = {};

//Podejście 2

var NewObject = Object.create(zero);

//Podejście 3

var NewObject = new Object();

[/Code]

W trzecim podejściu, obiekt jest tworzony za pomocą konstruktora obiektu, gdzie wartość nie zostanie przekazany lub ustaw. Istnieje wiele sposobów, aby ustawić wartości do nowo utworzonego obiektu. These are:

Listing 2: Sposoby ustawienia wartości do konstruktora

[Code]

//Podejście 1

newObject.someKey = "Hello World"

//Podejście 2

NewObject[someKey] = "Hello World"

//Podejście 3

Object.defineProperty( NewObject, “someKey”, {

wartość : "Witaj świecie"

writable : prawdziwy

przeliczalny : prawdziwy

konfigurowalne : prawdziwy

);

[/Code]

The Singleton Pattern:
Wszyscy wiemy, że Singleton ogranicza tworzenie obiektu do jednej instancji. Singleton jest realizowany poprzez stworzenie klasę z metodą, która tworzy nową instancję obiektu tylko wtedy, gdy nie istnieją inne przypadki. W JavaScript singletons stanowiącego wspólną nazw zasobów, który izoluje się od realizacji globalnej przestrzeni nazw. w JavaScript, Singleton jest realizowany w sposób następujący:

Listing 3: wdrożenie Singleton w JavaScript

[Code]

był mySingleton = (function () {

// Instancja przechowuje referencję do Singleton

instancja var;

funkcja startowych() {

// Singel

// Metody prywatne i zmienne

funkcja privateMethod(){

console.log( “Jestem prywatnym” );

}

była prywatna zmienna = “Im również prywatne”;

var privateRandomNumber = Math.random();

powrót {

// Metody publiczne i zmienne

publicMethod: function () {

console.log( “Publiczność może zobaczyć mnie!” );

},

własność publiczna: “Jestem również publiczne”,

getRandomNumber: function() {

powrót privateRandomNumber;

}

};

};

powrót {

// Uzyskaj instancji Singleton, jeśli taki istnieje

// lub utworzyć jeśli nie

getInstance: function () {

jeśli ( !instancja ) {

Instancja = startowych();

}

powrócić instancję;

}

};

})();

był myBadSingleton = (function () {

// Instancja przechowuje referencję do Singleton

instancja var;

funkcja startowych() {

// Singel

var privateRandomNumber = Math.random();

powrót {

getRandomNumber: function() {

powrót privateRandomNumber;

}

};

};

powrót {

// Zawsze utworzyć nową instancję Singleton

getInstance: function () {

Instancja = startowych();

powrócić instancję;

}

};

})();

// Usage:

był single1 = mySingleton.getInstance();

był single2 = mySingleton.getInstance();

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

var badSingle1 = myBadSingleton.getInstance();

var badSingle2 = myBadSingleton.getInstance();

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

[/Code]

Jak na GOF, Singleton ma zastosowanie w następujących sytuacjach:

  • Powinien istnieć dokładnie na wystąpienie obiektu.
  • Jedyny przypadek powinien być rozszerzany za to sub-classing.

The Observer Pattern:
W wzorca Observer, the object (nazywany również jako przedmiotu) utrzymuje listę obiektów, w zależności od tego, o którym mowa w charakterze obserwatorów. Przedmiotem automatycznie powiadamia obserwatorom żadnej zmiany, które stało, za pomocą mechanizmu rozsyłania. Implementacja wzorca Observer jest pokazany poniżej.

Listing 4: Lista obserwatorów zależnych przedmiot może mieć

[Code]

funkcja ObserverList(){ this.observerList = [];} ObserverList.prototype.Add = function( obj ){ powrót this.observerList.push( obj );}; ObserverList.prototype.Empty = function(){ this.observerList = [];}; ObserverList.prototype.Count = function(){ powrót this.observerList.length;}; ObserverList.prototype.Get = function( index ){ jeśli( index > -1 && index < this.observerList.length ){ powrót this.observerList[ index ]; }}; ObserverList.prototype.Insert = function( obj, index ){ był wskaźnik = -1; jeśli( indeks === 0 ){ this.observerList.unshift( obj ); pointer = wskaźnik; }else if( Indeks === this.observerList.length ){ this.observerList.push( obj ); pointer = wskaźnik; } powrót wskaźnika;}; ObserverList.prototype.IndexOf = function( obj, startIndex ){ var i = startIndex, pointer = -1; podczas gdy( ja < this.observerList.length ){ jeśli( this.observerList[ja] === obj ){ pointer = i; } I ; } powrót wskaźnika;}; ObserverList.prototype.RemoveAt = function( index ){ jeśli( indeks === 0 ){ this.observerList.shift(); }else if( Indeks === this.observerList.length -1 ){ this.observerList.pop(); }}; // Rozszerz obiekt z extensionfunction przedłużyć( extension, obj ){ dla ( Kluczem var w rozszerzeniu ){ obj[key] = rozszerzenie[key]; }}

[/Code]

Listing 5: Podmiot

[Code]

funkcja Temat(){ this.observers = new ObserverList();} Subject.prototype.AddObserver = function( observer ){ this.observers.Add( observer );}; Subject.prototype.RemoveObserver = function( observer ){ this.observers.RemoveAt( this.observers.IndexOf( observer, 0 ) );}; Subject.prototype.Notify = function( context ){ var observerCount = this.observers.Count(); dla(var i=0; ja < observerCount; I ){ this.observers.Get(ja).Aktualizacja( context ); }};

[/Code]

In the above example, stosując składniki Observer, możemy teraz zdefiniować:

  • Przycisk dodawania nowych pól wyboru do zaobserwowania na stronę
  • Pole wyboru sterowania, który będzie działał jako przedmiot, powiadamiając inne wyboru powinny być sprawdzane
  • Pojemnik do wyboru nowych dodawanych

Kod HTML jest pod

Listing 5: Kod HTML

[Code]

<Przycisk id =”addNewObserver”>Dodaj nowego obserwatora wyboru</button><id = input”mainCheckbox” type =”checkbox”/><div id =”observersContainer”></div>

[/Code]

Summary: Więc w tym artykule omówiliśmy szczegóły na temat wzorców projektowych JavaScript. Wzorce projektowe mają zastosowanie do wszystkich rodzajów języków takich jak obiektowego języka Java, a także język skryptowy jak JavaScript. Ale istnieją różnice i widzieliśmy go w powyższych przykładach. Tak, aby zakończyć dyskusję możemy powiedzieć, że wzorce projektowe są wykorzystywane w celu zapewnienia, aby rozwiązania najczęściej występujących problemów. I proszę pamiętać, że wzorce projektowe są

  • Są sprawdzone rozwiązania
  • Może być łatwo wykorzystane
  • są wyraziste

Mam nadzieję, że zrozumiałeś pojęcia i to pomoże Ci wdrożyć go w swoim własnym projekcie. Przyjemnej lektury.

Więcej ciekawych artykułów na JS — Musisz przeczytać

Introduction to AngularJS

Foundation for Apps by Zurb

Jak ustawić właściwości CSS3 przez skrypt Java?

============================================= ============================================== Buy best TechAlpine Books on Amazon
============================================== ---------------------------------------------------------------- electrician ct chestnutelectric
error

Enjoy this blog? Please spread the word :)

Follow by Email
LinkedIn
LinkedIn
Share