Open leandromoraesrj opened 2 years ago
public interface ReadOnlyService<T, ID> {
ReadOnlyRepository<T, ID> getRepositoryReadOnly();
default Sort getSort() {
return Sort.unsorted();
}
default List<T> buscar() {
return getRepositoryReadOnly().findAll(getSort());
}
}
@Service
public class UfServiceImpl extends ReadOnlyServiceImpl<Uf, String> implements UfService {
@Autowired
private UfRepository repository;
@Override
public Sort getSort() {
String[] fieldsOrder = { "nome" };
return Sort.by(Sort.Direction.ASC, fieldsOrder);
}
@Override
public ReadOnlyRepository<Uf, String> getRepositoryReadOnly() {
return repository;
}
}
O Template Method é um padrão de projeto comportamental que permite definir o esqueleto de um algoritmo em uma classe base e permitir que as subclasses substituam as etapas sem alterar a estrutura geral do algoritmo.