JavaScript設計モード---単一例モード詳細【四つの基本形式】
5741 ワード
本論文の実例はJavaScript設計モード---単一の例モードを述べています。
単例モードは単量体モードとも呼ばれる。
1,単体モードは名前空間を作成するために用いられ、一連の関連する属性と方法を論理ユニットに組織し、大域変数を低減します。
論理ユニットのコードは単一の変数でアクセスします。
2,3つの特徴:
①このクラスは一例しかない。
②クラスは自分でこの例を作成します。すなわち、クラスの内部に自分のインスタンスオブジェクトを作成します。
③この例示的なインターフェースをシステム全体に公開する
3,単体モードは四つの基本形式があります。
一番簡単な単量体は一回だけ実用化されます。 私は簡単にJsonの対象として覚えています。
(1)基本構造
第二に、局所変数を持つモノマー
要求:ajaxを使ってデータベースからデータをロードするプロセスをシミュレートする。
(1)簡単にajaxプロセスをシミュレートする。
(1)メリット
(2)弊害:return単体のデータ量が比較的大きい場合、データベースからデータを取る必要があり、ロードするたびに実行され、プログラムの性能に影響を与えます。この方式はロード毎に直接実行されるため、リターン単体のデータ量が大きいとパフォーマンスに影響を与え、第三の単体モードがある。
第三に、不活性単体で提供されるソリューションは、負荷時に実行されるのではなく、調整方法の場合にのみ単体を実現するものである。
そこで第二種類の基礎の上で修正しました。
(1)アナログajaxはデータベースからデータをロードしても不変です。
第四種、分岐単量体
簡単な使い方:Ajaxをするときは、ブラウザによって異なるXHRが得られます。ブラウザ間の違いを動的な方法にパッケージし、ブラウザ間の違いを解決するのに適しています。)
例えば、次の簡単な例として、コンピュータの解像度が異なる場合には、異なるインターフェースを初期化します。ここはパチンコの表示だけです。
(1)パソコンの解像度を取得する
興味のある友達はオンラインHTML/CSS/JavaScriptコードを使ってツールを実行できます。http://tools.jb51.net/code/HtmlJsRun上記コードの運行効果をテストします。
もっと多くのJavaScriptに関する内容に興味がある読者は、当駅のテーマを見ることができます。「javascript対象向け入門教程」、「JavaScriptエラーとデバッグテクニックのまとめ」、「JavaScriptデータ構造とアルゴリズム技術のまとめ」、「JavaScriptはアルゴリズムと技術の総括を遍歴します。」および「JavaScript数学演算の使い方のまとめ」
本論文で述べたように、JavaScriptプログラムの設計に役に立ちます。
単例モードは単量体モードとも呼ばれる。
1,単体モードは名前空間を作成するために用いられ、一連の関連する属性と方法を論理ユニットに組織し、大域変数を低減します。
論理ユニットのコードは単一の変数でアクセスします。
2,3つの特徴:
①このクラスは一例しかない。
②クラスは自分でこの例を作成します。すなわち、クラスの内部に自分のインスタンスオブジェクトを作成します。
③この例示的なインターフェースをシステム全体に公開する
3,単体モードは四つの基本形式があります。
一番簡単な単量体は一回だけ実用化されます。 私は簡単にJsonの対象として覚えています。
(1)基本構造
var userInfo={// json
name:" ",
dept:" PD",
code:" PD001",
getName:function () {
return " "
}
};
(2)使用方法はJsonの使用方法と一致しています。点「.」を使ってアクセスします。
alert(userInfo.getName())
名前空間を分割し、関連する属性と方法を組み合わせた簡単な紹介:
var comm={};//
comm.userInfo={//
name:" 1 ",
code:"001"
}
comm.funcInfo={//
funcName:" 2 ",
code:"002"
}
まとめ:オブジェクトの変数値は動的にロードされておらず、オブジェクトは初期化されていないことが分かります。第二に、局所変数を持つモノマー
要求:ajaxを使ってデータベースからデータをロードするプロセスをシミュレートする。
(1)簡単にajaxプロセスをシミュレートする。
// Ajax
function Ajax() {};//
//
Ajax.request=function (url,fn) {
//
if(true){
fn(" 1"," 2")
}
}
(2)最も簡単な単量体では、データは動的にデータベースからロードされておらず、具体的なオブジェクトが表示されていません。ここでは、クローズド原理を用いて上記の問題を解決します。
// : ,
var userInfo=(function () {
//(1)
var name="";
var code="";
//(2) ajax
Ajax.request("url",function (n,c) {// ajax ,
name=n;
code=c;
})
//(3)
return {
name:name,
code:code
}
})()
(3)この方式の単体を使用して、実装しなくても単体に直接戻すことができます。
alert(userInfo.name);
まとめ:(1)メリット
(2)弊害:return単体のデータ量が比較的大きい場合、データベースからデータを取る必要があり、ロードするたびに実行され、プログラムの性能に影響を与えます。この方式はロード毎に直接実行されるため、リターン単体のデータ量が大きいとパフォーマンスに影響を与え、第三の単体モードがある。
第三に、不活性単体で提供されるソリューションは、負荷時に実行されるのではなく、調整方法の場合にのみ単体を実現するものである。
そこで第二種類の基礎の上で修正しました。
(1)アナログajaxはデータベースからデータをロードしても不変です。
// Ajax
function Ajax() {}
//
Ajax.request=function (url,fn) {
//
if(true){
fn(" 1"," 2")
}
}
(2)データベースから動的にデータをロードし、実例を表示し、1つの関数(Init()パッケージを使って単体の関数を生成し、1つのプライベート変数を使って関数(Init()を返します。
// : ,
var UserInfo=(function () {
var userInfo="";//
function Init() {//
//
var name="";
var code="";
// ajax
Ajax.request("url",function (n,c) {
name=n;
code=c;
})
//
return {
name:name,
code:code,
}
}
return {//
getInstance:function () {
if(userInfo){//userInfo="" false
return userInfo;
}else {
userInfo=Init();
return userInfo;
}
}
}
})()
(3)使用 UserInfoオブジェクトにアクセスする取得初期化取得対象の関数(get Instance())
alert(UserInfo.getInstance().name);
まとめ:不活性単量体を使用すると、実際には、単量体を生成する関数を再パッケージ(関数パッケージを使用して)することによって、このクラスで提供される固有のインターフェース(get Instance()方法)にアクセスし、初期化された単体の関数になります。第四種、分岐単量体
簡単な使い方:Ajaxをするときは、ブラウザによって異なるXHRが得られます。ブラウザ間の違いを動的な方法にパッケージし、ブラウザ間の違いを解決するのに適しています。)
例えば、次の簡単な例として、コンピュータの解像度が異なる場合には、異なるインターフェースを初期化します。ここはパチンコの表示だけです。
(1)パソコンの解像度を取得する
//
var screenWidth=window.screen.width;//width
var screenHeight=window.screen.height;//height
(2)分岐判定処理を行い、差異を動的方法にカプセル化する
var portalInfo=(function () {
//
var $1280_1024={info:'1,2,3,5'}// 1
var $1366_768={info:'4,2,1,2'}// 2
// ( )
if(screenWidth==1280){
return $1280_1024;//
}else if(screenWidth==1366){
return $1366_768;//
}else {
throw new Error(" ")
}
})();
(3)使用して、最終的な結果を得る
alert(portalInfo.info)// 4,2,1,2 1366*768
まとめてみますと、ブランチ単体には欠点があります。ブランチには、単体1と単体2が作成され、メモリに保存されましたが、一つだけです。計算時間と占有メモリの両方において取捨選択が必要です。興味のある友達はオンラインHTML/CSS/JavaScriptコードを使ってツールを実行できます。http://tools.jb51.net/code/HtmlJsRun上記コードの運行効果をテストします。
もっと多くのJavaScriptに関する内容に興味がある読者は、当駅のテーマを見ることができます。「javascript対象向け入門教程」、「JavaScriptエラーとデバッグテクニックのまとめ」、「JavaScriptデータ構造とアルゴリズム技術のまとめ」、「JavaScriptはアルゴリズムと技術の総括を遍歴します。」および「JavaScript数学演算の使い方のまとめ」
本論文で述べたように、JavaScriptプログラムの設計に役に立ちます。