我最近才真正真正理解依赖注入和装饰器设计模式的奇迹,并且正在到处使用它。

然而,尽管它很美妙,但我一直遇到困难的一件事是命名我的装饰器类,所以我只想知道其他人在做什么。你总是附加“Decorator”这个词吗?您是否合并了其装饰界面的名称?他们有自己的命名空间吗?

你们是做什么的?

有帮助吗?

解决方案

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

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

其他提示

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

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

称其为它的作用。

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

  • printDisasterRecovery-异常处理
  • printqueer-使其成为异步电话

这些家伙都继承​​自 PrintDecorator,因此如果有人窥视幕后,他们可以看到发生了什么。

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top