之前erlang中自定义行为模式,需要导出behaviour_info函数,比如:
这种方式的缺点是,实现模块在实现函数时,没有类型规范的约束,约束只有函数名和元数。
已经存在的-spec关键字,不能使用在这种场景下,原因是spec用来规范约束函数定义和使用的。
erlang提出了新的关键字:callback,极大的简化了自定义行为模式的编码。代码如下:
-module(ranch_transport).
-callback messages() -> {OK::atom(), Closed::atom(), Error::atom()}.
callback真心让自定义行为模式简化了不少。