Discover learning javascript design patterns, include the articles, news, trends, analysis and practical advice about learning javascript design patterns on alibabacloud.com
This article mainly introduces the factory mode and constructor mode of the JavaScript design mode. It also describes the categories of the design mode, such as the creation mode, structure mode, and behavior design mode, for more information, see
What is mode?
A while ago, I was preparing for the final exam. I am so
Why do you want to learn design patterns
Getting started with software architecture and design is about understanding and mastering design patterns.
Design patterns have become a "stan
Introduction to one-piece JavaScript design patterns and javascript Design Patterns
Single-piece mode description
1. note: The single-piece mode is an object that has been instantiated during static access. This object can only b
. Dependency inversion principle: high-level modules do not depend on low-layer modules, both of which are dependent on abstraction. Or just the example: Duck is a high-rise module, Fly is a low-level module. Duck does not depend on fly, the high-rise module changes slowly, while the lower-level modules change slowly.Abstractions should not be dependent on implementation details, and implementation details should be dependent on abstraction. Fly is an abstraction, it does not depend on how to fl
JAVA design patterns-learning Summary (sequence), java Design Patterns
Design ModeDesign pattern is a summary of the code Design experience that has been used repeatedly. The
I have only been studying programming for two years and have not done any big applications yet. I joined the C language and made several small games such as Russian. Sophomore contacts win api and DX and understands C ++. At that time, I really felt that C ++ had nothing to do. It was just a high-level C. But later, I gradually discovered the depth of object-oriented design. Write in C ++
Program It is really difficult. Unlike C, it adds functions to
What is a pattern
Before preparing for the final exam, the trouble and the pernicious, really idle to update the article, today and you talk about the design patterns in JavaScript.
First, what we need to know is that the pattern is a reusable solution, and the reverse pattern is a bad solution for a problem.
JS Anti-pattern Common examples
1. Passing strings
of the Object.defineproperties or Object.defineproperty method type. It allows you to set properties such as enumerable, writable, or configurable. If you want to implement prototype mode yourself, instead of using object.create directly. You can use code like the following to achieve the above example:varVehicleprototype ={init:function(Carmodel) { This. Model =Carmodel; }, Getmodel:function() {Console.log (' Vehicle mould is: ' + This. Model); }};functionVehicle (model) {functionF () {}; F.pr
change.Beverage.prototype.customerWantsCondiments =function(){ return true;//seasoning is required by default }; Beverage.prototype.init=function(){ this. Boilwater (); this. Brew (); this. Pourincup (); if( this. customerwantscondiments ()) {//If the hook returns true, the seasoning is required this. Addcondiments (); } };Do you really need to "inherit"?The template method pattern is one of the few inheritance-based desig
developers, never care about these behaviors. The code is as follows:JavaScript var address = (function// address module function(obj) { Address.refresh (obj); }); return { function(avatar) { console.log (' Refresh receipt address List ');} } ;}) ();Advantages and Disadvantages
Supports simple broadcast communication and automatically notifies all subscribed objects;
After page loading publishers can easily have a dynamic association wi
to the previously saved policy object:
var bonus = new bonus ();
Bonus.setsalary (10000);
Bonus.setstrategy (new performances ()); Set Policy Object
Console.log (Bonus.getbonus ());//output: 40000
bonus.setstrategy (New Performancea ());//Set Policy Object
Console.log (Bonus.getbonus ()); Output: 30000
We've just reconstructed this year's year-end bonus code with a policy model, and we can see that the code becomes clearer after the policy pattern is refactored, and that the
initialize, with the syntax of the Object.defineproperties or Object.defineproperty method type. It allows you to set properties such as enumerable, writable, or configurable.If you want to implement prototype mode yourself, instead of using object.create directly. You can use code like the following to achieve the above example:varVehicleprototype = {init:function(Carmodel) { This. model = Carmodel; }, Getmodel:function() {console.log (' vehicle mould is: ' + This. model); }};functionVehicle (
use an iterator to iterate over the upload object until it gets to a usable one: //IE Upload Control varGetactiveuploadobj =function(){ Try{ return NewActiveXObject ("txftnactivex.ftnupload" ); }Catch(e) {return false; } }; //the Supportflash function does not provide varGetflashuploadobj =function(){ if(supportflash ()) {varstr = ' ; return$ (str). appendTo ($ (' body ')) ); } return false; }; //form Upload varGetformupladobj =function(){
open-closed principle.2, the Observer pattern conforms to the opening and shutting principle, the open and closed principle refers to a software entity should be opened to the extension, the modification closes. This means that the software entity must be expanded without being modified. The intent of the template method pattern is to control the top-level logic by the abstract parent class, and defer the implementation of the basic operation to the subclass, which is to achieve the reuse of th
is the new Pegadapter, called Two-way adapter:1 Public classPegadapterImplementsiroundpeg,isquarepeg{2 3 Privateroundpeg roundpeg;4 Privatesquarepeg squarepeg;5 6 //Construction Method7 PublicPegadapter (Roundpeg peg) { This. roundpeg=peg;}8 //Construction Method9 PublicPegadapter (Squarepeg Peg) ( This. squarepeg=peg;)Ten One Public voidInsert (String str) {roundpeg.insertintohole (str);} A -} There is also a kind of called pluggable adapters, can dynamically
Design Patterns learning notes -- Abstract Factory patterns
After several days of struggle, I finally understood some differences between the abstract factory and the factory method model.
Abstract Factory is similar to the factory method mode. They all follow the open-closed principle and use the factory interface t
):def __init__(self): Self.name='Processserver'self.state=state.newdefboot (self):Print('booting the {}'. Format ( self) self.state=state.runningdefKill (Self, restart=True):Print('killing {}'. Format ( self) self.state= Stae.restartifRestartElseState.zobmiedefcreate_process (self, user, name):Print("trying to create process ' {} ' for user ' {} '". Format (name, user)classWindowsServer:PassclassNetworkserver:PassclassOperatingSystem:def __init__(self): Self.fs=fileserver () self.ps=Processserve
A learning journey based on design patterns
-----Appearance Mode
1,
Initial appearance Mode
Stock:EachInvestors directly purchase various types of stocks (common)
Fund: Investors deal with experts to allow expertsAgree to selectStock to be purchased (appearance)
2,
What is appearance mode?
Provides a consistent interface for a group of interfaces
The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion;
products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the
content of the page makes you feel confusing, please write us an email, we will handle the problem
within 5 days after receiving your email.
If you find any instances of plagiarism from the community, please send an email to:
info-contact@alibabacloud.com
and provide relevant evidence. A staff member will contact you within 5 working days.