您对Decorator模式使用什么命名约定?

时间:2008-10-21 15:51:29

标签: language-agnostic design-patterns naming-conventions decorator

我最近才非常真实地了解了依赖注入和装饰设计模式的奇迹,并且正在使用它。

然而,尽管很棒,但我遇到的一件事就是命名我的装饰类,所以我只想知道别人做了什么。你总是附加装饰者这个词吗?你是否加入了其装饰界面的名称?他们有自己的命名空间吗?

你们做什么?

4 个答案:

答案 0 :(得分:20)

我避免使用设计模式名称。我认为这属于文档,如果有的话。在它所做或代表的内容之后命名装饰器类/函数。它装饰或桥接或链接或代理或重新表示的事实并不重要。

每次命名字符串时,都会添加字符串后缀吗?对我来说听起来像hgrnNotation,这是我努力避免的事情。

答案 1 :(得分:12)

从Java API的IO Framework中获取示例。它广泛使用装饰器模式,但类的名称不反映这一点。例如,BufferedReader可以修饰FileReader,但它们以其功能命名 - 读者。

如果您还合并了涉及相同类的其他模式,那么在名称中添加装饰器会导致进一步的问题。您最终可能会得到一个名为MyDecoratorStrategyComponent的类。

答案 2 :(得分:5)

称之为它。

我有一堆IPrinter接口的装饰器。他们被称为:

  • PrintDisasterRecovery - 例外 处理
  • PrintQueuer - 使它成为一个 异步调用

这些章节都继承自PrintDecorator,所以如果有人偷看封面,他们可以看到最新情况。

答案 3 :(得分:3)

通常情况下,模式封装在一个对象中(相对于一组对象),然后在类中包含模式名称会更清晰,更容易,在这种情况下使用Decorator作为后缀。这适用于代理,装饰器,工厂,适配器等..但不适用于其他模式,其中在模式的实现中需要一组对象,如桥(即什么对象将适当地采用-bridge后缀?)