コマンド チェーン パターンは、疎結合トピックに基づいており、メッセージ、コマンド、リクエストを送信するか、一連のハンドラーを通じて任意のコンテンツを送信します。各ハンドラーは、リクエストを処理できるかどうかを独自に判断します。可能な場合、リクエストは処理され、プロセスは停止します。他のハンドラーに影響を与えることなく、システムにハンドラーを追加または削除できます。
1.インターフェイスバリデータ
2.{
3. /**
4. * メソッドには任意のパラメーターを含めることができます。
5. * @param混合
6. * @return boolean
7.*/
8. パブリック関数 isValid($value);
9.}
10.
11./**
12. * 具体的なコマンド
13.*/
14.class MoreThanZeroValidator は Validator を実装します
15.{
16. パブリック関数 isValid($value)
17.
18. $value > 0;19.
20.}
21.
22./**
23. * 具体的なコマンド
24.*/
25.class EvenValidator は Validator を実装します
26.{
27. パブリック関数 isValid($value)
28.
29. $value % 2 == 0;を返します。
30.31.}
32.
33./**
34. * 呼び出し者。実装では複数のファイルを保存できます
35. * 必要に応じてバリデーター
36.*/
37.class ArrayProcessor
38.{
39. $_ルールを保護しました;
40.
41. パブリック関数 __construct (バリデータ $rule)
42.
43. $this->_rule = $rule;44.
45.
46. パブリック関数処理(配列$numbers)
47.
48. foreach ($n としての $numbers) {49. if ($this->_rule->IsValid($n)) {
50. $n、"n";
をエコーします。
51.52.
53.54.}
55.
56.// クライアントコード
57.$processor = 新しい ArrayProcessor(新しい EvenValidator());
58.$processor->process(array(1, 20, 18, 5, 0, 31, 42));
http://www.bkjia.com/PHPjc/998007.html
www.bkjia.com
true
技術記事