public void add(User user)
{
1,JDBC连接数据库。;
2,使用sql添加语句添加数据。;
3,关闭连接。
}
public void delete(User user)
{
1,JDBC连接数据库。;
2,使用sql添加语句删除数据。;
3,关闭连接。
}
}
class UserInfoByHibernate implements UserInfoDao
{
public void add(User user)
{
1,Hibernate连接数据库。;
2,使用sql添加语句添加数据。;
3,关闭连接。
}
public void delete(User user)
{
1,Hibernate连接数据库。;
2,使用sql添加语句删除数据。;
3,关闭连接。
}
}
class DBOperate
{
public static void main(String[] args)
{
//UserInfoByJDBC ui = new UserInfoByJDBC();
// UserInfoByHibernate ui = new UserInfoByHibernate();
UserInfoDao ui = new UserInfoByHibernate();
ui.add(user);
ui.delete(user);
}
}
总结:
1.这两个例子都使用了接口来抽象出一些重复的操作,为了让不同的模块能直接快捷地使用这些操作,直接使用多态的向上转型(看我之前的博客),能后用父类引用去调用,反正之后无论是技术更新而有了新的模块或者更换已有模块,我们都可以使用父类的引用去直接调用它们共同的操作!
2.不一定用接口,也可以使用抽象类,但是,使用接口,可拓展性更高,以后有更新,可以直接改动接口,不用去改动抽象类,其次,使用接口,能够被多继承!这也是方便的地方。