3

私はHTML::FormHandlerを使用しており、多くのコードを繰り返さないようにするために、 HTML::FormHandler クックブックで提案されているように、フォームを再利用可能な部分に分割しようとしています。これを達成するために独自のフィールドまたは独自のロールを作成できることについて説明していますが、2 つの明確な違いはわかりません。実装/使用方法が異なることは理解していますが、私が知る限り、同じことをかなり似ているように見えます。私の質問は、どちらか一方を使用することが明確な選択である状況はありますか? それとも、これは好みの傾向にあるものですか?助けてくれてありがとう。コードが本番環境に入る直前にこれを行いたいのですが、後で変更するのは難しいです:)

4

1 に答える 1

0

1 つのオプションは Moose クラスを使用することで、もう 1 つは Moose ロールを使用することです。

コンセプトは少し異なります。Moose Roles マニュアルの抜粋を次に示します。

ロールは、クラス間で共有できる動作または状態の一部をカプセル化します。それはクラスが行うことです。ロールはクラスではないことを理解することが重要です。ロールから継承することはできず、ロールをインスタンス化することもできません。ロールは、クラスまたは他のロールによって消費されると言うことがあります。

クラスでは継承を使用できます。ロールは、継承せずに機能を共有したい場合に適しています。

継承を使用する/使用しない場合の (不自然な) 例については、役割と継承に関するこの記事を参照してください。

于 2013-03-01T12:00:41.207 に答える