Это зависит от ваших требований, но я бы порекомендовал, как показано ниже пример.
Public Constructor полезен для внедрения зависимостей.
Защищенный конструктор можно использовать свой собственный класс и подклассы (полезно в Singleton Design Pattern ). Это также полезный конструктор для абстрактного класса.
Private Constructor может использоваться в своем собственном классе и гарантирует, что не должно быть более одного объекта (полезно в Singleton Design Pattern , Шаблон проектирования Builder ).
class MyService {
private MyRepository myRepository;
public MyService(MyRepository myRepository){
this.myRepository= myRepository;
}
public String getMyRepository() { return myRepository; }
public void setMyRepository(MyRepository myRepository)
{
this.myRepository= myRepository;
}
}