我知道,java抽象类是一种“是什么”的关系,接口则是一种“有什么”的关系。那么在实际开发中,接口的设计过程是怎样的?我这里有三种想法,不知道是哪一种,或者都不是。
1、从上到下设计,我以map接口为例,就是架构师设计好map接口,然后再让程序员去实现HashTable,HashMap等类(ps:HashMap跟HashTable实现了map接口)。这里“从上”的意思就是先设计接口,“到下”就是再根据接口去实现类
2、跟1相反,是从下到上进行设计,就是先实现好类HashMap、HashTable等,再通过重构手段,不断提炼超类,直至最后成为接口
3、采用缺省适配器模式。就是写完HashMap之后,将其方法提炼为接口map1。之后再要实现HashTable等类的时候,抽取HashMap与HashTable的共同部分为接口map2,让这两个类都实现map2,再去掉原先的map1
不知道在实际开发中用的是哪一种方式?如果我说的三种都是错的 ,恳请您跟我说说对的是什么样子的,感谢。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
接口在Java中本身有不同的用法:
(1)对组件解耦,比如说类似代码分层之类的。这种情况就适合根据业务提炼接口
(2)封装代码,比如你说的设计数据结构、之类的,那么就是先设计接口,再设计对应的类
(3)在Java 8以前,Java没有事件、回调函数、Lambda函数之类的概念,因此注入代码也通过接口实现。这种情况,其实接口只是扮演一个函数的容器而已,不需要什么特别的设计。