Oop 形容词的接口命名
好的,如果你能很容易地想到一个名词:用户、窗口、数据库、流等等,那么命名一个接口(或类)就很容易了Oop 形容词的接口命名,oop,interface,naming-conventions,Oop,Interface,Naming Conventions,好的,如果你能很容易地想到一个名词:用户、窗口、数据库、流等等,那么命名一个接口(或类)就很容易了 形容词或形容词概念呢?e、 g.有时间戳的东西(hastinmestamp,timestamp,timestable…?)或被跟踪或监视的东西(Trackable,IsTracked,Watchable,IsWatched…?)这是个好问题。我试图用名词来命名我所有的接口和类。所以我可能会以ITrackingTarget,IObservee这样的名字结束。时间戳是有趣的一个。也许是它自己 使用Vi
形容词或形容词概念呢?e、 g.有时间戳的东西(hastinmestamp,timestamp,timestable…?)或被跟踪或监视的东西(Trackable,IsTracked,Watchable,IsWatched…?)这是个好问题。我试图用名词来命名我所有的接口和类。所以我可能会以ITrackingTarget,IObservee这样的名字结束。时间戳是有趣的一个。也许是它自己
使用Visitor模式,您会如何称呼表示接受IVisitor的对象的接口?我倾向于使用
-able
后缀。Java库中也有许多这种命名约定的好例子,例如:
Taggable
,具有时间戳的东西是Loggable
:
时间戳通常用于记录事件,在这种情况下,日志中的每个事件都标有时间戳。在文件系统中,时间戳可能表示存储的创建或修改文件的日期/时间
我也倾向于使用名词 对于可以打开/关闭的对象,您始终可以使用详细的OpenableObject或OpenableInterface:即使是组合的,也会以一个名词结束 由于它冗长(而且有点傻),我倾向于使用Openable而不是OpenableObject。如果我想强调OpenableInterface是一个接口这一事实,我会使用它 对于使用依赖项反转模式的对象,我有时会使用“用户”后缀:ImageUser、LoggerUser、ServiceXUser
使用名词更好,但我更喜欢清晰,而不是严格遵守规则。VisitableObject?VisitorUser?虽然我通常也遵循这种模式,“able”并不总是完全适合一些更复杂的模式,例如IDeterminesEmptyValue。可能是ICanDetermineEmptyValue。ImptyValueDeterminatible没有那么大的意义。我喜欢你的总体推理,但是“Loggable”这个词与时间戳的距离太远了,我觉得不合适。@Jason:我必须承认Loggable这个名字有点勉强:-)