Architecture des composants
webforJ fournit une API Java pour une bibliothèque de composants web et gère chacun d’eux depuis le serveur. Cette page explique la structure des composants et comment les étendre.
Structure des composants
Chaque composant webforJ fourni avec le produit est une classe Java associée un à un à un composant web côté client de la bibliothèque de composants DWC. La classe Java contient l’état et l’API du composant sur le serveur, et le framework maintient la synchronisation avec le composant web dans le navigateur.
Vous travaillez uniquement avec la classe Java. Les propriétés, les événements et le rendu dans le navigateur sont gérés par le framework : vous pouvez donc créer des applications web uniquement en Java.
La classe de base DwcComponent
Au cœur de l’architecture des composants de webforJ se trouve la classe de base DWCComponent. Tous les composants webforJ héritent de cette classe. Elle gère le lien entre le composant Java et son homologue côté client, notamment sa création, la mise à jour de ses propriétés et la gestion des événements.
Il est toutefois important de noter que les développeurs ne sont pas autorisés à étendre davantage la classe DWCComponent. Toute tentative en ce sens entraînera une exception à l’exécution qui interdira ces extensions. Cette restriction vise à préserver l’intégrité de ce lien et à éviter que les développeurs ne le manipulent involontairement d’une manière susceptible d’entraîner des conséquences imprévues.
Classes finales et restrictions d’extension
Dans webforJ, la plupart des classes de composants, à l’exception des éléments HTML intégrés et des classes qui en héritent, sont déclarées final. Cela signifie qu’elles ne peuvent pas être étendues ni sous-classées. Ce choix de conception est intentionnel et répond à plusieurs objectifs :
-
Contrôle du lien côté client : comme indiqué précédemment, l’extension des classes de composants webforJ exposerait le lien interne entre le composant Java et son homologue côté client. Pour préserver la cohérence et la prévisibilité du comportement des composants, ce niveau de contrôle est restreint.
-
Prévention des modifications involontaires : déclarer les classes de composants
finalévite les modifications involontaires des composants essentiels et réduit le risque d’introduire des comportements inattendus ou des vulnérabilités. -
Encouragement à utiliser des composites : pour étendre les fonctionnalités des composants, le framework webforJ encourage les développeurs à adopter une approche composite. Les composants composites sont des classes Java qui contiennent d’autres composants webforJ ou des éléments HTML standard. Bien que l’héritage traditionnel soit déconseillé, les composants composites permettent de créer de nouveaux composants personnalisés qui encapsulent des composants existants.
Composants composites : extension par composition
Dans le framework webforJ, les composants composites jouent un rôle essentiel dans l’extension des fonctionnalités des composants. Les composants composites sont des classes Java qui ne sont pas soumises au mot-clé final. Ils permettent aux développeurs de créer de nouveaux composants en étendant le comportement d’un seul composant ou en combinant plusieurs composants, par composition de composants existants. Des classes facilitant cette approche ont été créées pour les développeurs. Consultez les sections Composite et ElementComposite pour découvrir comment créer correctement des composants composites.
Cette approche encourage un style de développement plus modulaire et flexible, permettant aux développeurs de créer des composants sur mesure qui répondent à des besoins spécifiques.
Evaluating webforJ for a project?
Talk to the team about your app, your team, and whether webforJ fits.