Java Script Design Patterns – Нека да разгледаме

Java Script Design Patterns

Java Script Design Patterns

Преглед: В този документ, ние ще говорим за различните модели дизайн, използвани в JavaScript. Повечето от разработчиците се чудя, за да разберете точния или идеалният дизайн моделът да бъде използван в тяхната програма. Да бъда честен, няма конкретен отговор на този въпрос или няма никакви формули, които ще открият правилния дизайн модел, за да се използват в дадена ситуация. Така че при такова обстоятелство, ние трябва да имаме една фирма издихание на моделите на дизайна и специфичните проблеми, те се справят с, трябва да сме в по-добра ситуация, за да вземе решение по които дизайн модел да се използва в което състояние.

Въвеждане:
A модел дизайн е решение за многократна употреба, които могат да бъдат приложени към общите проблеми повторно разпространение в софтуерния дизайн и разработка. Дизайн модел също може да се обозначават като шаблони, използвани за решаване на общи проблеми. Дизайн модели имат три основни предимства:

  • Те са доказани решения: Дизайн модел осигури солидна подход в разработването на софтуер и използва доказани техники.
  • Може лесно да се използва повторно: Дизайн модели са концептуални и предоставят от разтвора на кутия, която отговаря на нашите нужди. Тази функция прави моделите на дизайна по-силен и те могат да бъдат повторно използвани в подобни условия.
  • Моделите са изразителни: Всеки модел дизайн представя предварително определен набор структура и лексика, която може да се използва за предоставяне на решения за по-големи проблеми.

Дизайн модел никога не осигурява точно решение на проблема. Важно е да се отбележи, че ролята на модели е да предостави схема разтвор.

Видове Design Patterns
Дизайн модели могат да бъдат разделени в резултат на три под категории:

  • Творческия Design Pattern : В тази категория следните модели дизайн попадат :
    • сек
    • Строител
    • Фабрика
    • абстрактен
    • прототип
    • Строител
  • Структурно Design Pattern : В тази категория следните модели дизайн попадат :
    • декоратор
    • Фасада
    • Flyweight
    • адаптер
    • пълномощник
  • Поведенчески Design Pattern : В тази категория следния дизайн модел есента :
    • Iterator
    • посетител
    • посредник
    • наблюдател

Модели в JavaScript:
Следните модели обикновено се използват в JavaScript:

  • Конструктор Pattern
  • Модул Pattern
  • Singleton Pattern
  • Observer Pattern
  • Посредник Pattern
  • Prototype Pattern
  • Command Pattern
  • Фасада Pattern
  • Factory Pattern
  • декоратор Pattern
  • миниобект

Шарката Конструктор:
Според концепцията на класическата обектно-ориентирано програмиране, конструктор е особен вид метод, който се използва за създаване на инстанция на обект в паметта. В JavaScript създаване обект се извършва с помощта на всеки от следните три подхода:

Listing 1: Три подходи, използвани в JavaScript за създаване на обекти

[Code]

// подход 1

беше newObject = {};

//подход 2

Var newObject = Object.create(нула);

//подход 3

Var newObject = нов обект();

[/Code]

В третия подход, Обектът е създаден с помощта на конструктора на обекта, където няма никаква стойност се предава или набор. Има много начини да се определят стойности за новосъздадена обект. These are:

Listing 2: Начини за определени стойности на конструктор

[Code]

//подход 1

newObject.someKey = "Hello World"

//подход 2

newObject[someKey] = "Hello World"

//подход 3

Object.defineProperty( newObject, “someKey”, {

стойност : "Здравей свят"

писане : вярно

enumerable : вярно

конфигурируеми : вярно

);

[/Code]

Моделът Сингълтън:
Ние всички знаем, че Сингълтън модел ограничава създаването на обект за една инстанция. Сингълтън модел се реализира чрез създаване на клас с метод, който създава нова инстанция на обекта, само когато не са налице други случаи. В JavaScript singletons служат като споделен ресурс именно пространство, което изолира изпълнение от глобалното пространство. В JavaScript, Сингълтън се осъществява по следния начин:

Listing 3: изпълнение Singleton в JavaScript

[Code]

беше mySingleton = (функция () {

// Съд съхранява позоваване на Singleton

Var инстанция;

функция първоначален() {

// сек

// Частните методи и променливи

функция privateMethod(){

console.log( “Аз съм частен” );

}

е частна променлива = “Im също частен”;

Var privateRandomNumber = Math.random();

return {

// Публичните методи и променливи

publicMethod: функция () {

console.log( “Обществеността може да ме види!” );

},

publicProperty: “Аз също съм публична”,

getRandomNumber: функция() {

върнете privateRandomNumber;

}

};

};

return {

// Вземете Singleton инстанция, ако има такъв

// или да създадете един, ако това не е така

getInstance: функция () {

ако ( !инстанция ) {

Например = първоначален();

}

върнете инстанция;

}

};

})();

беше myBadSingleton = (функция () {

// Съд съхранява позоваване на Singleton

Var инстанция;

функция първоначален() {

// сек

Var privateRandomNumber = Math.random();

return {

getRandomNumber: функция() {

върнете privateRandomNumber;

}

};

};

return {

// Винаги се създаде нов Singleton инстанция

getInstance: функция () {

Например = първоначален();

върнете инстанция;

}

};

})();

// Usage:

беше single1 = mySingleton.getInstance();

беше single2 = mySingleton.getInstance();

console.log( singleA.getRandomNumber() === singleB.getRandomNumber() ); // вярно

Var badSingle1 = myBadSingleton.getInstance();

Var badSingle2 = myBadSingleton.getInstance();

console.log( badSingleA.getRandomNumber() !== badSingleB.getRandomNumber() ); // вярно

[/Code]

Съгласно GOF, Сингълтън е приложимо в следните ситуации:

  • Трябва да съществува точно на инстанция на обекта.
  • Единствената инстанция трябва да бъде разширяема чрез вторично classing.

Моделът Observer:
В модела на Observer, обекта (наричан също като предмет) поддържа списък на обекти, в зависимост от това, посочено като наблюдатели. Предметът автоматично известява за наблюдателите всяка промяна, която се е случило, се използва механизмът за предаване. Прилагане на модела на наблюдател е показано по-долу.

Listing 4: Списък на зависими Наблюдателите субект може да има

[Code]

функция ObserverList(){ this.observerList = [];} ObserverList.prototype.Add = function( OBJ ){ return this.observerList.push( OBJ );}; ObserverList.prototype.Empty = function(){ this.observerList = [];}; ObserverList.prototype.Count = function(){ return this.observerList.length;}; ObserverList.prototype.Get = function( index ){ ако( index > -1 && index < this.observerList.length ){ return this.observerList[ index ]; }}; ObserverList.prototype.Insert = function( OBJ, index ){ var pointer = -1; ако( индекс === 0 ){ this.observerList.unshift( OBJ ); pointer = index; }иначе, ако( индекс === this.observerList.length ){ this.observerList.push( OBJ ); pointer = index; } return pointer;}; ObserverList.prototype.IndexOf = function( OBJ, startIndex ){ var i = startIndex, показалка = -1; докато( аз < this.observerList.length ){ ако( this.observerList[аз] === OBJ ){ pointer = i; } I ; } return pointer;}; ObserverList.prototype.RemoveAt = function( index ){ ако( индекс === 0 ){ this.observerList.shift(); }иначе, ако( индекс === this.observerList.length -1 ){ this.observerList.pop(); }}; // Extend an object with an extensionfunction extend( extension, OBJ ){ за ( Var ключ в продължение ){ OBJ[key] = удължаване[key]; }}

[/Code]

Listing 5: Предметът

[Code]

функция Тема(){ this.observers = new ObserverList();} Subject.prototype.AddObserver = function( наблюдател ){ this.observers.Add( наблюдател );}; Subject.prototype.RemoveObserver = function( наблюдател ){ this.observers.RemoveAt( this.observers.IndexOf( наблюдател, 0 ) );}; Subject.prototype.Notify = function( контекст ){ var observerCount = this.observers.Count(); за(var i=0; аз < observerCount; I ){ this.observers.Get(аз).Актуализация( контекст ); }};

[/Code]

В горния пример, използване на компонентите на наблюдателя, ние сега се дефинира:

  • Бутон за добавяне на нови наблюдаеми отметки към страницата
  • А контрол квадратчето, което ще действа като субект, уведомяване други отметки те трябва да бъдат проверени
  • Контейнер за новите квадратчетата се прибавя

HTML кодът е както при

Listing 5: Кодът на HTML

[Code]

<бутон ID =”addNewObserver”>Нова Наблюдател квадратчето</бутон><вход ID =”mainCheckbox” тип =”квадратчето”/><Разделение ID =”observersContainer”></Разделение>

[/Code]

Summary: Така че в тази статия съм обсъждал подробности около моделите на дизайна на JavaScript. моделите на дизайна са приложими за всички видове езици като обектно ориентиран език Java и също скриптов език като JavaScript. Но има разлики и ние видяхме в примерите по-горе. Така че, за да се заключи, дискусията можем да кажем, че Дизайн модели се използват, за да се осигури решение на често срещаните проблеми. И моля, имайте предвид, че Дизайн модели са

  • Са доказани разтвор
  • Може лесно да се използва
  • Има изразителен

Надявам се, че сте разбрали концепциите и тя ще ви помогне да го въведе в свой собствен проект. Приятно четене.

Още интересни статии на JS — Трябва да се чете

Въведение в AngularJS

Фондация за Apps от Zurb

Как да се създаде CSS3 свойства на Java Script?

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

Enjoy this blog? Please spread the word :)

Follow by Email
LinkedIn
LinkedIn
Share