您的位置:首页 > 其它

一种巧妙的设计--通过继承扩展接口

2015-06-11 10:23 357 查看
基本的增删改查:
package com.zzj;

import java.io.Serializable;

/**
* 基本的增删改查
*
* @author Administrator
*
*/
public interface CRUD {
Serializable save(Object entity);

void update(Object entity);

void delete(Object entity);

<T> T loadByKey(Class<T> entityClass, Serializable key);
}
Dao抽象类:
package com.zzj;

import java.io.Serializable;

public abstract class AbstractDao implements CRUD{

public void delete(Object entity) {
// TODO Auto-generated method stub

}

public <T> T loadByKey(Class<T> entityClass, Serializable key) {
// TODO Auto-generated method stub
return null;
}

public Serializable save(Object entity) {
// TODO Auto-generated method stub
return null;
}

public void update(Object entity) {
// TODO Auto-generated method stub

}

}

UserDao接口:

package com.zzj;

public interface UserDao extends CRUD {
Object query(String username, String password);
}
UserDao实现类:
package com.zzj;

public class UserDaoImpl extends AbstractDao implements UserDao {

@Override
public Object query(String username, String password) {
// TODO Auto-generated method stub
return null;
}

public static void main(String[] args) {
UserDao userDao = new UserDaoImpl();
Object user = new Object();
userDao.save(user);
userDao.update(user);
userDao.delete(user);
userDao.loadByKey(Object.class, 1);
userDao.query("Tom", "123");
}

}
AbstractDao可以不实现CRUD接口,只要它的方法签名和返回值与CRUD接口的方法签名和返回值保持一致,就可以实现相同的效果。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: