我有一个类,它使用策略模式来格式化名称,基于会话设置:
String outputName = session.getNameFormatStrategy().format(name);
现在我发现我想配置该对象,以便它从会话(如上)或从另一个源获取名称格式化策略。看起来这是另一个非常适合策略模式的方法:
String outputName = nameFormatStrategyStrategy.getNameFormatStrategy().format(name);
nameFormatStrategyStrategy 可能在哪里,例如RetrieveNameFormatStrategyFromSessionStrategy
, .StaticNameFormatStrategyStrategy
RetrieveNameFormatStrategyFromSystemConfigStrategy
分层结构和分层抽象很好,但我真的不喜欢NameFormatStrategyStrategy
,当然随着层的增加它会变得更糟。
我可以用更好的命名风格来解决这个问题吗?还是用另一种模式?