以able为后缀的接口,设计上有没有什么共性

新手上路,请多包涵

常见的接口背后都有所熟悉的设计模式,比如Comparable,Clonable,Callable,Runnable...,这些able后缀结尾的接口,背后是否隐含了某些共性的设计?不考虑硬套模式的说法,该在什么时候设计自己的Xxxable的接口呢? 先谢各位大佬 ~

阅读 4.2k
4 个回答

其实不是以 able 结尾,而是这些接口都是形容词,而 able 正是英语中一个表示形容词的词缀。iblealianented 等等这些也是常见的形容词词缀。

“形容” 某个类型应该哪些特征的。我们说这个类是 可被比较的可被克隆的 等等,它是修饰、而不是分类。

表示 “分类” 的接口当然也有,那就是名词形式了。

原则上只有这两种词性可以被用作接口名。

接口本身就是共性的抽象啊。讲的直白点就是公共特性做封装。
比如,
String要做比较,Integer也要做比较,于是把比较这个特性封装成Comparable接口,只有实现了Comparable接口就可以做比较了。

你可以自己定义一个DataExist接口
你的Service只有继承了这个接口,ServiceImpl实现了这个接口,就可以查询数据是否存在。

使用java8的接口default特性,甚至接口实现都可以不用做。

个人感觉是对一类具有某种能力的类的抽象,没有什么设计模式。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题