一个接口可以从三方面去考察:
制定者(或者叫协调者),实现者(或者叫生产者),调用者(或者叫消费者)。
接口本质上就是由制定者来协调实现者和调用者之间的关系。
所以通常说的“面向接口编程”可以理解为:
只有实现者和调用者都遵循“面向接口编程”这个准则,制定者的协调目的才能达到。
一个老生常谈的例子就是JDBC。
优点:
接口和实现分离了,适于团队的协作开发。
更具体的优点:可以参看IDP原则。
缺点:
设计难了,在你没有写实现的时候,就得想好接口,接口一变,全部乱套,这就是所谓的设计比实现难。
所以设计接口的人工资都高啊!!!
——————————————————————
Java本身也是一个不断完善的语言,他也在频繁的改动他的系统API来完善,他的API是一个庞大的体系,互相关联,如果不采用接口,而都是用实现类的话,那么API的改动就会给整个体系带来不稳定。而且如果改动API,那么就会有大量采用旧API的项目因无法正常运行,会损失大量客户。换句话说,JDK已经发布的API是一种承诺,一经发布就不能更改,即使原来API存在各种各样的问题(例如java.util.Properties类就是一个失败的例子)也必须保留,于是在Java里就出现了不建议使用的方法,但JDK依然提供该方法。而且Java语言本身是一个跨平台的语言,为了满足在各个平台下运行,就必须把各种操作做成接口,在编写各个平台下的实现类
请参考
也就是说你所有的dao包里面的类都要实现dao这个接口,比如说你的dao包里面有两个类,Studao和Teadao,那么你这两个类都要实现dao这个接口,目的就是为了让你在类里面实现这sava()和updata()两个方法
就是把所有和数据库有关的方法 抽象到接口里,然后可以直接面向接口编程
通用DAO接口应该是指BaseDao,通用和公用是一个意思,这个DAO里面就是抽象了一些基本的所有的Dao接口都会用到的基本方法比如: getById、getByIds、find 方法,通过泛型,可以让不同的接口在实现时通过泛型来指定各自的数据类型。
比如实现接口中放一个BaseDAO:
private BaseDAO
baseDao 中定义方法:
public interface BaseDAO
public void delete(T o);
}
这样就等于 Product 这种类型的对象在操作baseDao 中的方法了。
应该不是 修改和保存 dao包含了
数据库删除 貌似没有 应该还会有个 delete方法的