2

私は新しい仕事でデコレータを使い始めましたが、とても役に立っています。私は、デコレータの 1 つの仕様を書いているところですが、これが可能かどうか疑問に思っていました...

セットアップ (簡素化されたバージョン):

2 人の子を持つメイン オブジェクトがあります。

 Main
 / \
A   B

Main が装飾されると、B も装飾されますが、 A をコンテキストとして渡す必要があります。A は B のデコレータ メソッドのいくつかに使用されますが、上記のように A を B から分離する方がより理にかなっています。

# in MainDecorator    
BDecorator.new(B, context: {a: A}) # all good

時折、B を単独で (Main を経由せずに) 装飾し、過去にコンテキストとして A を渡すのを忘れていました。常にキャッチしていますが、打ち続けるのは厄介な問題です。

B.decorate # no context -> :(

質問:

A が B のデコレータでコンテキストとして渡されていることを検証することは可能ですか? デコレーターバリデーターはありますか?

(A を B の子にすることを検討しましたが、これは私たちのアプリケーションにはあまり意味がありません。うまくいくことに同意しますが、それは私たちが望んでいるものではありません。)

4

1 に答える 1