按照惯例,类型应该用名词命名,没关系。但是,@FunctionalInterface
是一种特殊的类型-对象类型,其作用类似于函数/方法。对于功能,我觉得选择动词例如decorate.apply(o)
而不是名词decorator.apply(o)
。还有一些名词表示活动,例如decoration.apply(o)
。
如果我查看java.util.function包,则所有函数均以名词命名:Function
,Operator
,Consumer
,Supplier
,...更喜欢名词,动词或表达动词的名词?
答案 0 :(得分:2)
@FunctionalInterface
只能标记类型(类,接口,注释,枚举)。
要命名类型,您应该使用名词,而对于方法,则需要动词。
类
类名应为名词,每个内部单词的首字母应大写。尝试使您的类名称保持简单和描述性。使用整个单词,避免使用首字母缩写词和缩写词(除非缩写词比长格式(如URL或HTML)使用得更广泛)。
class Raster; class ImageSprite;
方法
方法应为动词,首字母小写混合,每个内部单词的首字母大写。
run(); runFast(); getBackground();
这是我定义功能接口的一个例子。
@FunctionalInterface
interface Decorator {
void decorate();
}
在代码中,它看起来可读。
Decorator decorator = () -> {};
decorator.decorate();
我对“装饰与装饰”的想法:
"Decoration"
更多地描述了过程/结果,而"Decorator"
是启动过程/获得结果的机制/工具/手段。
如果我在代码中看到Decoration
类,我会考虑的是装饰材料的集合(例如装饰品,油漆,墙纸),而不是真正装饰的人。
如果看到Decorator
或Painter
,我会期望像decorate()
或paint()
这样的方法,因为那是他们可以/应该做的。
比较suppliance/supplier -> get()
和consumption/consumer -> accept(t)
。