常见的接口背后都有所熟悉的设计模式,比如Comparable,Clonable,Callable,Runnable...,这些able后缀结尾的接口,背后是否隐含了某些共性的设计?不考虑硬套模式的说法,该在什么时候设计自己的Xxxable的接口呢? 先谢各位大佬 ~
常见的接口背后都有所熟悉的设计模式,比如Comparable,Clonable,Callable,Runnable...,这些able后缀结尾的接口,背后是否隐含了某些共性的设计?不考虑硬套模式的说法,该在什么时候设计自己的Xxxable的接口呢? 先谢各位大佬 ~
接口本身就是共性的抽象啊。讲的直白点就是公共特性做封装。
比如,
String要做比较,Integer也要做比较,于是把比较这个特性封装成Comparable接口,只有实现了Comparable接口就可以做比较了。
你可以自己定义一个DataExist接口
你的Service只有继承了这个接口,ServiceImpl实现了这个接口,就可以查询数据是否存在。
使用java8的接口default特性,甚至接口实现都可以不用做。
15 回答8.2k 阅读
8 回答5.9k 阅读
1 回答4.1k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
1 回答2.2k 阅读✓ 已解决
其实不是以
able
结尾,而是这些接口都是形容词,而able
正是英语中一个表示形容词的词缀。ible
、al
、ian
、ent
、ed
等等这些也是常见的形容词词缀。“形容” 某个类型应该哪些特征的。我们说这个类是
可被比较的
、可被克隆的
等等,它是修饰、而不是分类。表示 “分类” 的接口当然也有,那就是名词形式了。
原则上只有这两种词性可以被用作接口名。