デコレータパターンにはどのような命名規則を使用していますか? [閉まっている]

StackOverflow https://stackoverflow.com/questions/222369

質問

私は最近、本当に本当に依存性注入とデコレータのデザインパターンの素晴らしさを実感し、それをあちこちで使用しています。

それでも素晴らしいのですが、私が難しかったことの1つは、デコレータクラスに名前を付けることです。そのため、他の人が何をしているのか知りたいだけです。あなたはいつもデコレータという言葉を付けていますか?装飾するインターフェースの名前を組み込んでいますか?独自の名前空間を取得しますか?

皆さんはどうしますか?

役に立ちましたか?

解決

デザインパターン名の使用は避けます。これはドキュメントに属していると思います。デコレータのクラス/関数には、その機能または表現に基づいて名前を付けます。装飾、橋渡し、リンク、プロキシ、または代理をするという事実は、ほとんど意味がありません。

文字列に名前を付けるたびに、文字列の接尾辞を追加しますか?私にはhgrnNotationのように聞こえますが、それは私が試し、回避しようとしているものです。

他のヒント

Java APIのIOフレームワークの例をご覧ください。デコレータパターンを広範囲に使用しますが、クラスの名前はこれを反映していません。たとえば、BufferedReaderはFileReaderを飾ることができますが、機能にちなんで名前が付けられています-Readers。

名前にデコレータを追加すると、同じクラスを含む他のパターンも頻繁に組み込まれる場合、さらに問題が発生します。最終的にはMyDecoratorStrategyComponentという名前のクラスになります。

実行内容を呼び出します。

IPrinterインターフェース用のデコレータがたくさんあります。それらは呼ばれます:

  • PrintDisasterRecovery-例外 処理
  • PrintQueuer-それを 非同期呼び出し

これらのチャップは両方ともPrintDecoratorを継承しているため、誰かがカバーの下を覗くと、何が起こっているかを見ることができます。

通常、パターンがオブジェクト(オブジェクトのコレクションに対して)にカプセル化されている場合は、クラスにパターン名を含める方が明確で簡単です。この場合、接尾辞として Decorator を使用します。これは、プロキシ、デコレータ、ファクトリ、アダプタなどではうまく機能しますが、ブリッジのようなパターンの実装にオブジェクトのグループが必要な他のパターンでは機能しません(つまり、どのオブジェクトが-bridgeサフィックスを適切に使用しますか?)

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