Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oop 形容词的接口命名_Oop_Interface_Naming Conventions - Fatal编程技术网

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

时间戳通常用于记录事件,在这种情况下,日志中的每个事件都标有时间戳。在文件系统中,时间戳可能表示存储的创建或修改文件的日期/时间


我也倾向于使用名词

对于可以打开/关闭的对象,您始终可以使用详细的OpenableObjectOpenableInterface:即使是组合的,也会以一个名词结束

由于它冗长(而且有点傻),我倾向于使用Openable而不是OpenableObject。如果我想强调OpenableInterface是一个接口这一事实,我会使用它

对于使用依赖项反转模式的对象,我有时会使用“用户”后缀:ImageUser、LoggerUser、ServiceXUser


使用名词更好,但我更喜欢清晰,而不是严格遵守规则。

VisitableObject?VisitorUser?虽然我通常也遵循这种模式,“able”并不总是完全适合一些更复杂的模式,例如IDeterminesEmptyValue。可能是ICanDetermineEmptyValue。ImptyValueDeterminatible没有那么大的意义。我喜欢你的总体推理,但是“Loggable”这个词与时间戳的距离太远了,我觉得不合适。@Jason:我必须承认Loggable这个名字有点勉强:-)