Pen^2 (./28) :
(Et si tu veux bloquer l'héritage, tu déclares A finale et puis hop
)
C’est en effet un problème d’héritage : si une classe dérive de Singleton, elle pourrait, elle, implémenter Cloneable.
Et même si ça paraît débile de marquer explicitement comme Cloneable une classe dérivant d’un Singleton, il faut se dire que que Singleton ne portera peut-être pas un nom si spécifique et n’aura peut-être pas de documentation.
Certes, on peut marquer le Singleton
final, mais peut-être aura-t-on besoin un jour d’en dériver, c’est donc d’après moi une mauvaise idée.
Comme une implémentation de
clone() est censée appeler
super.clone(), ce
clone() du Singleton devrait suffire, mais si le programmeur ne le fait pas (zOMGWTFBBQ

), une protection supplémentaire est de le marquer
final (le
clone(), pas le Singleton).
Hop, je corrige

.

Je ne suis pas développeur Java : je suis artiste Java.
Ce que l’on conçoit bien s’énonce clairement, / Et le code pour l’écrire arrive aisément.
Hâtez-vous lentement ; toujours, avec méthode, / Vingt fois dans l’IDE travaillez votre code.
La perfection est atteinte, non pas lorsqu’il n’y a plus rien à ajouter, mais lorsqu’il n’y a plus rien à retirer.
You don't use science to show that you're right, you use science to become right.