博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
再论机械式针对接口编程
阅读量:6497 次
发布时间:2019-06-24

本文共 519 字,大约阅读时间需要 1 分钟。

两月前论及到 ,如今再一次老调重提。面向对象有一个很重要设计原则:

针对接口编程,而不是针对实现编程

这一原则关键在于理解什么是接口,请参照前文提到的上一篇。因为 Java 语言中有 interface 这个概念,于是 Java 的 interface 便躺枪了,好好的针对接口编程在 Java 中就机械式的变成了针对 interface 的编程。

以致于只要有实现的地方都可能变成像 UserDao.java(接口) 与 UserDaoImpl.java 成对出现,在以后的重构中基本上是为了实现而修改接口,这也进一步违背了针对接口编程的初衷,接口怎么一点也不稳固。

或许有人认为先声明一个 interface,然后我们可能会有多种实现(为将来考虑,不过多数时候只会是单一实现),这很像是 interface 存在的一个理由。可是当我们写下类似 UserDaoImpl 这个样的实现类名时直接宣告了该接口其实就只有一种实现,不然的话再加一个实现的话类名为哪般?UserDaoImpl2? 显然多种实现时 UserDaoImpl 需要重命名了。 

转载于:https://my.oschina.net/u/2791/blog/1523323

你可能感兴趣的文章
mysql+mycat搭建稳定高可用集群,负载均衡,主备复制,读写分离
查看>>
静态属性和静态方法2 - C++快速入门22
查看>>
用Ajax请求服务器的图片,并显示在浏览器中(转)
查看>>
带有用户名密码验证的远程文件下载
查看>>
【cocos2d-js官方文档】九、cc.loader
查看>>
123
查看>>
apache开启虚拟主机 并进行配置
查看>>
三大特性
查看>>
nexus 4 下 DualBootInstallation 安装 ubuntu touch
查看>>
python-docx操作
查看>>
iOS开发之圆角指定
查看>>
2016.01.04 论文改重
查看>>
js数组删除数组元素!
查看>>
Silverlight 预定义颜色速查表
查看>>
上下或左右无缝滚动
查看>>
Android常用URI收藏
查看>>
jenkins添加git源码目录时报Error performing command错误
查看>>
git pull出现There is no tracking information for the current branch
查看>>
MathType在手,公式不求人!
查看>>
测试用例设计
查看>>