@FunctionalInterface的命名约定

时间:2018-07-01 13:44:50

标签: java naming-conventions functional-interface

按照惯例,类型应该用名词命名,没关系。但是,@FunctionalInterface是一种特殊的类型-对象类型,其作用类似于函数/方法。对于功能,我觉得选择动词例如decorate.apply(o)而不是名词decorator.apply(o)。还有一些名词表示活动,例如decoration.apply(o)

如果我查看java.util.function包,则所有函数均以名词命名:FunctionOperatorConsumerSupplier,...更喜欢名词动词表达动词的名词

1 个答案:

答案 0 :(得分:2)

@FunctionalInterface只能标记类型(类,接口,注释,枚举)。

要命名类型,您应该使用名词,而对于方法,则需要动词。

  

     

类名应为名词,每个内部单词的首字母应大写。尝试使您的类名称保持简单和描述性。使用整个单词,避免使用首字母缩写词和缩写词(除非缩写词比长格式(如URL或HTML)使用得更广泛)。

class Raster; 
class ImageSprite;
     

方法

     

方法应为动词,首字母小写混合,每个内部单词的首字母大写。

run(); 
runFast(); 
getBackground();
     

Naming Conventions, Oracle

这是我定义功能接口的一个例子。

@FunctionalInterface
interface Decorator {

    void decorate();

}

在代码中,它看起来可读。

Decorator decorator = () -> {};
decorator.decorate();

我对“装饰与装饰”的想法:

"Decoration"更多地描述了过程/结果,而"Decorator"是启动过程/获得结果的机制/工具/手段。

如果我在代码中看到Decoration类,我会考虑的是装饰材料的集合(例如装饰品,油漆,墙纸),而不是真正装饰的人。

如果看到DecoratorPainter,我会期望像decorate()paint()这样的方法,因为那是他们可以/应该做的。

比较suppliance/supplier -> get()consumption/consumer -> accept(t)