我最近才非常真实地了解了依赖注入和装饰设计模式的奇迹,并且正在使用它。
然而,尽管很棒,但我遇到的一件事就是命名我的装饰类,所以我只想知道别人做了什么。你总是附加装饰者这个词吗?你是否加入了其装饰界面的名称?他们有自己的命名空间吗?你们做什么?
答案 0 :(得分:20)
我避免使用设计模式名称。我认为这属于文档,如果有的话。在它所做或代表的内容之后命名装饰器类/函数。它装饰或桥接或链接或代理或重新表示的事实并不重要。
每次命名字符串时,都会添加字符串后缀吗?对我来说听起来像hgrnNotation,这是我努力避免的事情。
答案 1 :(得分:12)
从Java API的IO Framework中获取示例。它广泛使用装饰器模式,但类的名称不反映这一点。例如,BufferedReader可以修饰FileReader,但它们以其功能命名 - 读者。
如果您还合并了涉及相同类的其他模式,那么在名称中添加装饰器会导致进一步的问题。您最终可能会得到一个名为MyDecoratorStrategyComponent的类。
答案 2 :(得分:5)
称之为它。
我有一堆IPrinter接口的装饰器。他们被称为:
这些章节都继承自PrintDecorator,所以如果有人偷看封面,他们可以看到最新情况。
答案 3 :(得分:3)
通常情况下,模式封装在一个对象中(相对于一组对象),然后在类中包含模式名称会更清晰,更容易,在这种情况下使用Decorator
作为后缀。这适用于代理,装饰器,工厂,适配器等..但不适用于其他模式,其中在模式的实现中需要一组对象,如桥(即什么对象将适当地采用-bridge后缀?)