Open ikhoon opened 2 weeks ago
Although not a widely used term, this kind of reminds me of additivity
in the logging community.
ref: https://logback.qos.ch/manual/architecture.html#additivity
I love the way the maintainers explain the details of the issue and extra information. Just reading the issues sometimes help me a lot 😄
Say a decorator checks permission of request. I want to give all API write permissions in the class and optionally give read permissions. In this way, when a new API is added to the class, write permission is given by default. This will prevent the new API from being accidentally exposed with lower permissions.
This logic cannot be implemented using the
DecoratorFactory
. Because the decorators in the method and class are applied repeatedly even if it is the same class type.In the
SensitiveService
,get()
method can't be executed withREAD
permission. BothREAD
andWRITE
are required instead.To solve this case, I suggest adding the
repeatable
option toDecoratorFactory
. Ifrepeatable=false
, the decorator with a higher priority will be selected.If there is any other good name other than
repeatable
, please recommend it.