【发布时间】:2009-08-12 13:54:55
【问题描述】:
好的,如果您可以轻松想到一个名词,那么命名接口(或类)就很容易:用户、窗口、数据库、流等。
形容词或形容词的概念呢?例如有时间戳的东西(HasTimestamp、Timestamped、Timestampable...?)或被跟踪或观看的东西(Trackable、IsTracked、Watchable、IsWatched...?)
【问题讨论】:
标签: oop interface naming-conventions
好的,如果您可以轻松想到一个名词,那么命名接口(或类)就很容易:用户、窗口、数据库、流等。
形容词或形容词的概念呢?例如有时间戳的东西(HasTimestamp、Timestamped、Timestampable...?)或被跟踪或观看的东西(Trackable、IsTracked、Watchable、IsWatched...?)
【问题讨论】:
标签: oop interface naming-conventions
我倾向于使用-able 后缀。 Java 库中也有很多这种命名约定的好例子,例如:
例如,具有标签的东西在此命名约定下将被命名为Taggable,具有时间戳的东西是Loggablesince:
时间戳通常用于记录事件,在这种情况下,日志中的每个事件都标有时间戳。在文件系统中,时间戳可能意味着创建或修改文件的存储日期/时间。
【讨论】:
这是个好问题。我尝试使用名词命名我的所有接口和类。所以我最终可能会得到像 ITrackingTarget、IObservee 这样的名字。时间戳是有趣的。也许是 ITimestamp 本身?
使用访问者模式,你会怎样称呼表示接受 IVVisitor 的对象的接口?
【讨论】:
我也倾向于使用名词。
对于可以打开/关闭的对象,您始终可以使用详细的 OpenableObject 或 OpenableInterface :即使组合了,您也会得到一个名词。
由于它很冗长(而且有点傻),我倾向于使用 Openable 而不是 OpenableObject。如果我想强调它是一个接口这一事实,我会使用 OpenableInterface。
对于使用依赖反转模式的对象,我有时会使用“用户”后缀:ImageUser、LoggerUser、ServiceXUser、...
最好使用名词,但我更喜欢清晰而不是严格遵守规则。
【讨论】: