Par exemple (peut-être un peu maladroit d'une véritable vision de la vie, mais juste pour illustrer):Puis-je définir une classe sans constructeur public et placer une méthode factory pour les objets de cette classe dans une classe différente dans Scala?
« Utilisateur » est un cas classe contenant le nom d'utilisateur et id. L'ID ne peut jamais être défini manuellement et une instance de classe User sans ID n'a aucun sens.
Une classe UserBase gère la base des utilisateurs et possède une méthode "getUser (name: String): User" renvoyant une instance utilisateur cohérente. Personne d'autre qu'un objet UserBase ne peut savoir (bien que quelqu'un puisse, mais ne devrait pas s'appuyer sur cette connaissance) l'identifiant d'un utilisateur, donc construire une instance User n'a aucun sens (et peut causer des erreurs dans le futur si quelqu'un accidentellement le code et oublie). De plus, avoir une instance d'utilisateur orpheline qui n'est pas suivie par une UserBase n'est pas non plus souhaitable. Par conséquent, la tâche consiste à appeler uniquement UserBase.getUser pour obtenir une instance User.
Est-ce que cela peut être implémenté dans Scala?
Cette question est ancienne maintenant, vous devriez probablement accepter l'une des réponses. Ou modifiez-le pour fournir plus d'informations si vous n'obtenez pas le type de réponse que vous espériez. –