设计模式 - Java中要是一个接口只有一个实现类, 还有必要设计接口吗?

查看:251
本文介绍了设计模式 - Java中要是一个接口只有一个实现类, 还有必要设计接口吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

其实是有关DAO接口, 我发现有很多的DAO实现类, 他们各不相同。
比如DogDaoImpl类有findByBrand()save()等方法。像save()这样的是可以抽象出来的接口。但findByBrand()却一般是该类特有的。

HumanDaoImpl类总不能有个findByBrand()方法吧, 应该是findByName()这样的方法才对。

所以感觉要用接口的话, 我得给每一个实现类都定义一个接口。那这样的话, 接口还有什么意义呢?

请教一下, 大家一般的做法是怎么样的?

解决方案

有必要,因为可以在你需要另一种实现的时候不用修改其他模块中既有的代码。

换而言之,是在扩展模块的需求下,将对原有代码的修改程度限制到用接口控制的耦合点之前。

举个例子:
DogDao有两个方法findByBrand和save,DogDaoMysqlImpl是存进Mysql,DogDaoXmlImpl用xml文本方式存等等。这个时候所有用DogDao接口进行耦合的代码是不依赖具体的实现的,因此可以较为轻松地将DogDao的实现从mysql迁到xml中。

业务设计的时候就把自己从实现中略略抽象出来,面向接口一方面是为了降低耦合,其实也能增强了设计思考的层次感。

这篇关于设计模式 - Java中要是一个接口只有一个实现类, 还有必要设计接口吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆