クリーンの実施戦略パターンPerl
-
09-06-2019 - |
質問
どうしてクリーンの実施戦略パターンPerl?いる方法で活用Perlのが特徴です。
解決
この変化により契約内容の変更が何を意味する"クリーン実施".として、他の言語を使用できPerlのオブジェクトシステムの多型になります。しかし、Perlは、最初のクラスの機能は、このパターンでない通常のコードを明確にした。Leon Timmermans'の例
sort { lc($a) cmp lc($b) } @items
この非常に優雅.
しかし、今までの"正式"を実施しまうC++からのメッセージで使用Perl+ムース.これは単なる翻訳のC++コードから Wikipedia--戦略パターン, 以外を使用していムー支援います。
package StrategyInterface;
use Moose::Role;
requires 'run';
package Context;
use Moose;
has 'strategy' => (
is => 'rw',
isa => 'StrategyInterface',
handles => [ 'run' ],
);
package SomeStrategy;
use Moose;
with 'StrategyInterface';
sub run { warn "applying SomeStrategy!\n"; }
package AnotherStrategy;
use Moose;
with 'StrategyInterface';
sub run { warn "applying AnotherStrategy!\n"; }
###############
package main;
my $contextOne = Context->new(
strategy => SomeStrategy->new()
);
my $contextTwo = Context->new(
strategy => AnotherStrategy->new()
);
$contextOne->run();
$contextTwo->run();
他のヒント
Subを使いて説を抑止するためには、必要か良いperlish例
sort { lc($a) cmp lc($b) } @items
この記事の一部に利用します。この例の戦略パターンPerlです。 http://www.perl.com/pub/a/2003/08/07/design2.html
所属していません StackOverflow