我正在 Spring 和休眠中开发一个 Web 应用程序。我在数据库中加载实体。作者、书籍、出版物等是我从 excel 中加载的实体。我有模式一实体加载服务接口,然后我有每个实体的实现。我的服务调用 DAO 实现。现在我正在努力寻找下面提到的代码是否违反了 SRP。 另外,我总是对如何确定类的责任感到困惑,因为任何类都可以有很多方法,并且每个方法都可以执行不同的操作。那么它们应该在不同的类中分开吗?. 以我为例,我有 4 种方法,每种方法执行不同的任务。因此,每种方法都有 4 个不同的类。如果我遵循这种方法(我知道这是错误的),那么我总是会在具有单一方法的类中结束。此外,有时我觉得我正在远离领域驱动设计,因为我在功能的基础上重构代码。
关于如何从班级的角度决定责任的任何建议?SRP 代表单一责任原则。我在确定这个责任时真的很困惑。
public interface EntitiesLoadService {
public void loadEntities(Object o);
public void deleteEntities(Object o);
public List getEntities();
public Object getEntity(Object o);
}
服务实施
@Service("authorLoadService")
@Transactional
public class AuthorEntityLoadService implements EntitiesLoadService{
private AuthorDAO authorDao;
@Autowired
@Qualifier("authorDAO")
public void setAuthorDao(AuthorDAO authorDao) {
this.authorDao = authorDao;
}
@Override
public void deleteEntities(Object o) {
// TODO Auto-generated method stub
}
@Override
public void loadEntities(Object o) {
Set<author_pojo> author=(Set<author_pojo>)o;
Iterator<author_pojo> itr=author.iterator();
while (itr.hasNext()) {
author_pojo authorPojo = (author_pojo) itr.next();
authorDao.save(authorPojo);
}
}
@Override
@Transactional(readOnly=true)
public List getEntities() {
// TODO Auto-generated method stub
return null;
}
@Override
@Transactional(readOnly=true)
public Object getEntity(Object o) {
String author=(String)o;
author_pojo fetAuthor=authorDao.findOneByName(author);
return fetAuthor;
}
}