質問

どうしてクリーンの実施戦略パターン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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top