L'API Java Date : un héritage de défauts de conception
L'API Java Date, englobant les classes java.util.Date et java.util.Calendar, existe depuis longtemps a été critiqué pour sa conception alambiquée et problématique. Ces classes ont été qualifiées de « terrible gâchis » en raison de plusieurs défauts flagrants :
-
Mutabilité de Date : La classe Date est mutable, permettant une modification directe de son état interne. Cela compromet l'immuabilité des objets, un principe clé du développement de logiciels modernes.
-
Fausse représentation de l'heure : La date représente un horodatage, capturant uniquement l'instant précis, plutôt qu'une date. Cet amalgame de concepts d'heure et de date introduit une complexité inutile et peut gêner la manipulation de la date.
-
Inconvénient de conversion : Il n'existe pas de méthode simple pour convertir entre les composants de date (par exemple, jour, mois, année). et un objet Date.
-
Utilisation maladroite du calendrier :Le calendrier est une classe complexe qui tente d'unifier différents systèmes de calendrier en une seule entité. Son interface est lourde, ce qui la rend difficile à utiliser efficacement.
Les origines du désordre :
Comment ces classes défectueuses ont-elles été intégrées au SDK Java ? Bien que certains problèmes puissent paraître évidents rétrospectivement, leur inclusion initiale a probablement été influencée par plusieurs facteurs :
-
Pression temporelle : Les API originales ont été développées au début de Java, lorsque la rapidité et l’efficacité étaient primordiales. La classe Date mutable a peut-être été considérée à l'époque comme une optimisation des performances.
-
Surveillance de la conception : La confusion de l'heure et de la date dans Date et la tentative de généralisation des systèmes de calendrier dans Calendar peuvent avoir découlait d'un manque de clarté dans les spécifications de conception initiales.
-
Contraintes historiques : Java a été réticent à introduire interrompre les modifications apportées à ses API principales, perpétuant les défauts de conception de Date et Calendrier pour maintenir la compatibilité ascendante.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!