我知道,java抽象类是一种“是什么”的关系,接口则是一种“有什么”的关系。那么在实际开发中,接口的设计过程是怎样的?我这里有三种想法,不知道是哪一种,或者都不是。
1、从上到下设计,我以map接口为例,就是架构师设计好map接口,然后再让程序员去实现HashTable,HashMap等类(ps:HashMap跟HashTable实现了map接口)。这里“从上”的意思就是先设计接口,“到下”就是再根据接口去实现类
2、跟1相反,是从下到上进行设计,就是先实现好类HashMap、HashTable等,再通过重构手段,不断提炼超类,直至最后成为接口
3、采用缺省适配器模式。就是写完HashMap之后,将其方法提炼为接口map1。之后再要实现HashTable等类的时候,抽取HashMap与HashTable的共同部分为接口map2,让这两个类都实现map2,再去掉原先的map1
不知道在实际开发中用的是哪一种方式?如果我说的三种都是错的 ,恳请您跟我说说对的是什么样子的,感谢。
想请教下各位关于java接口设计的问题
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- threenewbee 2015-09-13 15:30关注
接口在Java中本身有不同的用法:
(1)对组件解耦,比如说类似代码分层之类的。这种情况就适合根据业务提炼接口
(2)封装代码,比如你说的设计数据结构、之类的,那么就是先设计接口,再设计对应的类
(3)在Java 8以前,Java没有事件、回调函数、Lambda函数之类的概念,因此注入代码也通过接口实现。这种情况,其实接口只是扮演一个函数的容器而已,不需要什么特别的设计。本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 请问各位,如何在Jetson nano主控板的Ubuntu系统中安装PyQt5
- ¥15 MAC安装佳能LBP2900驱动的网盘提取码
- ¥400 微信停车小程序谁懂的来
- ¥15 ATAC测序到底用什么peak文件做Diffbind差异分析
- ¥15 安装ubantu过程中第一个vfat 文件挂载失败
- ¥20 GZ::CTF如何兼容一些靶机?
- ¥15 etcd集群部署问题
- ¥20 谁可以帮我一下问一下各位
- ¥15 为何重叠加权后love图的SMD与svyCreateTableOne函数绘制基线表的不一致
- ¥150 求 《小魔指》街机游戏机整合模拟软件