[デザインモード]javascriptの装飾者モード
5130 ワード
装飾者パターン説明
説明:他のクラスの機能オブジェクトに対して動的に前または後の修飾を行い、いくつかの追加的な機能を補足します.これは一つの類の対象の機能に対する装飾で、装飾の類と装飾された類で、同じアクセスインターフェースの方法(機能)を持つことが要求されます.これは動的に対象類に向かう中で、普通は同じインターフェースを実現します.装飾類には、装飾類に対する引用が必要で、装飾類における相応の方法で、該当する被装飾類の方法を呼び出して、それを修飾する.
シーン例:
1>.例えば私たちの生活の中で、服を着て、シャツを着て、ブレザーを着て、ズボンを一つ、ネクタイを一つ、きれいな靴を履いています.一つ多く着ると、前の一つまたは全身の装飾です.
2>.例えば、私達はクラスの機能方法があります.ログを書くために使うかもしれません.ユーザー登録のために使うかもしれません.ログに書き込む前に現在の操作者情報を取得する必要があるかもしれません.またはログインが成功したら、ログを書き込みます.ログを書き込む前の追加操作は、全体としてもやはりログを書く目的です.孫さんが成功したら日記を書きます.全体的にも登録過程の操作情報です.
したがって、装飾者モードは、同じような動作の2つのシーンを実現するために使用される.装飾者が被装飾者の機能対象の拡張に対して、本質はやはりもとの方法と同じ機能範囲です.
インスタンスソース
1.被装飾者類
その他の説明
装飾者モードは、本当に対象に向けた方法を提示しています.すべての欲しい機能方法は、「装飾された種類のWear」を変更しないで拡張した「装飾者という種類のDecorator」の場合に行います.
装飾者モードの一つの主要な特徴は、装飾者が被装飾者に対する引用であり、被装飾者に対する無修正の装飾を実現することである.
シミュレーション:まずシャツを着て、ネクタイをして、スーツを着るシーン:上の被飾り者は変わりません.
2.装飾者類:
説明:他のクラスの機能オブジェクトに対して動的に前または後の修飾を行い、いくつかの追加的な機能を補足します.これは一つの類の対象の機能に対する装飾で、装飾の類と装飾された類で、同じアクセスインターフェースの方法(機能)を持つことが要求されます.これは動的に対象類に向かう中で、普通は同じインターフェースを実現します.装飾類には、装飾類に対する引用が必要で、装飾類における相応の方法で、該当する被装飾類の方法を呼び出して、それを修飾する.
シーン例:
1>.例えば私たちの生活の中で、服を着て、シャツを着て、ブレザーを着て、ズボンを一つ、ネクタイを一つ、きれいな靴を履いています.一つ多く着ると、前の一つまたは全身の装飾です.
2>.例えば、私達はクラスの機能方法があります.ログを書くために使うかもしれません.ユーザー登録のために使うかもしれません.ログに書き込む前に現在の操作者情報を取得する必要があるかもしれません.またはログインが成功したら、ログを書き込みます.ログを書き込む前の追加操作は、全体としてもやはりログを書く目的です.孫さんが成功したら日記を書きます.全体的にも登録過程の操作情報です.
したがって、装飾者モードは、同じような動作の2つのシーンを実現するために使用される.装飾者が被装飾者の機能対象の拡張に対して、本質はやはりもとの方法と同じ機能範囲です.
インスタンスソース
1.被装飾者類
function Wear() {
}
Wear.prototype.Shirt = function() {
//
console.log(' ');
}
2.飾り物類function Decorator(wear) {
this.wear = wear;
}
Decorator.prototype.Shirt = function() {
this.wear.Shirt();
// ,
}
3.使い方var wear = new Wear();
var decorator = new Decorator(wear);
decorator.Shirt();
このようにWearシャツという機能対象のダイナミックな拡張装飾を実現しました.あなたも元の装飾方法がどのように実行されているかを知る必要はありません.その機能が何かを知っていればいいです.そして、私達がその補助に加えたい機能は何かを知るだけでいいです.その他の説明
装飾者モードは、本当に対象に向けた方法を提示しています.すべての欲しい機能方法は、「装飾された種類のWear」を変更しないで拡張した「装飾者という種類のDecorator」の場合に行います.
装飾者モードの一つの主要な特徴は、装飾者が被装飾者に対する引用であり、被装飾者に対する無修正の装飾を実現することである.
シミュレーション:まずシャツを着て、ネクタイをして、スーツを着るシーン:上の被飾り者は変わりません.
2.装飾者類:
function Decorator(wear) {
this.wear = wear;
}
Decorator.prototype.Shirt = function() {
this.wear.Shirt(); // ;
}
3.Decoratorのサブクラスを継承するようなネクタイ類とスーツ類を作成するfunction Decorator_Tie(decorator) {
this.decorator = decorator;
}
Decorator_Tie.prototype.Shirt = function() {
this.decorator.Shirt(); //
console.log(' ');
}
function Decorator_Western (decorator) {
this.decorator = decorator;
}
Decorator_Western.prototype.Shirt = function() {
this.decorator.Shirt();
console.log(' ');
}
使用方法://
var wear = new Wear();
var decorator = new Decorator(wear);
//decorator.Shirt(); //
var tie = new Decorator_Tie(decorator);
//tie.Shirt();
//
var western = new Decorator_Western(tie);
western.Shirt();
これは服を着て装飾するシミュレーションの例です.