147 lines
6.6 KiB
Plaintext
147 lines
6.6 KiB
Plaintext
<!DOCTYPE html>
|
|
<html lang="fr">
|
|
<!-- Updated by Blorec Hervé 2016-08-14-->
|
|
<head>
|
|
<title>JMRI: Patterns and Structure</title>
|
|
<meta name="author" content="Bob Jacobsen">
|
|
<meta name="keywords" content="JMRI technical code patterns structure">
|
|
<!--#include virtual="/help/fr/parts/Style.shtml" -->
|
|
</head>
|
|
|
|
<body>
|
|
<!--#include virtual="/help/fr/parts/Header_fr.shtml" -->
|
|
<div id="mBody">
|
|
<!--#include virtual="Sidebar.shtml" -->
|
|
<div id="mainContent">
|
|
<!-- Page Body -->
|
|
|
|
<h1>JMRI: Modèles et Organisation</h1>
|
|
<p>
|
|
JMRI a grandi et évolué avec le temps, et
|
|
vous ne pouvez pas toujours voir les structures et les
|
|
caractéristiques actuellement préférées
|
|
en regardant des morceaux de l'ancien code.
|
|
<p>
|
|
Cette page tente de décrire la structure et les modèles recommandés,
|
|
et fournir des exemples des meilleures pratiques actuelles.
|
|
|
|
<a id="namedbeans" name="namedbeans"></a><h2>Noms, NamedBeans, et les gestionnaires</h2>
|
|
|
|
Le concept "NameBean" est la base de JMRI.
|
|
Un <a href="https://jmri.org/JavaDoc/doc/jmri/NamedBean.html">NamedBean</a>
|
|
est un objet de base qui représente quelque chose, typiquement quelque chose
|
|
comme un Capteur ou un Aiguillage.
|
|
<ul>
|
|
<li>Ils sont appelés "Bean" parce qu'ils sont une unité
|
|
d'interaction: De multiples morceaux de code peuvent travailler avec l'un d'eux, il peut être chargé ou stocké, etc.
|
|
<li>Ils sont "named" parce que pour être sûr qu'ils sont uniques et retrouvables: Il y a seulement un Aiguillage NamedBean
|
|
appelé LT01, et il représente un objet spécifique du réseau adressé( named ).
|
|
Voir la <a href="Names.shtml">page sur les Noms</a> pour en savoir davantage.
|
|
</ul>
|
|
Fonctionnellement, toutes les classes d'objets du système ( Capteur, Aiguillage,... ) et
|
|
leurs mise en oeuvre spécifiques ( LnSensor, XNetTurnout, ...), hérite de la classe de base
|
|
<a href="https://jmri.org/JavaDoc/doc/jmri/NamedBean.html">NamedBean</a>.
|
|
<p>
|
|
Pour obtenir l'accès à un objet spécifique (un NamedBean d'un type spécifique avec un nom spécifique ), vous faites
|
|
des demandes à un gestionnaire: vous demandez un
|
|
<a href="https://jmri.org/JavaDoc/doc/jmri/TurnoutManager.html">TurnoutManager</a> pour un Aiguillage spécifique
|
|
à votre tour, vous
|
|
<a href="IntroStructure.shtml">accédez aux gestionnaires à travers l'InstanceManager commun</a>.
|
|
|
|
<p>
|
|
Un utilisateur peut vouloir rééférencer un NamedBean via un nom utilisateur, et à son tour peut vouloir
|
|
changer le NetBean spécifique auquel le nom utilisateur se réfère. "Yard East Turnout" peut être
|
|
"LT12" à un point et plus tardpeut changer en "CT5". Pour gérer ceci,
|
|
votre code utilise les objets
|
|
<a href="https://jmri.org/JavaDoc/doc/jmri/NamedBeanHandle.html">NamedBeanHandle</a>
|
|
pour gérer les références pour NamedBeans. Ils automatisent le processus de renommage.
|
|
|
|
<h2>Organisation du Code</h2>
|
|
<p>
|
|
Au plus haut niveau, nous séparons le code de test du code
|
|
distribué en les mettant dans des répertoires distincts
|
|
dans le répertoire de développement: "test" et "src".
|
|
Il est donc facile de compiler une version sans code de test,
|
|
d'appliquer des outils différents pour les deux types de code, etc
|
|
|
|
<p>
|
|
Dans le code source lui-même, nous séparons plusieurs types.</p>
|
|
|
|
<dl>
|
|
<dt>Le paquet jmri
|
|
<dd>contient les interfaces de base pour le système.
|
|
Il doit contenir le code de mise en œuvre minimale,
|
|
et pas de références non-JMRI, en particulier le code Swing.
|
|
|
|
<dt>Le paquet jmri.jmris
|
|
<dd>Contient tout le code pour la mise en œuvre des serveurs pour les interfaces JMRI.
|
|
|
|
<dt>Le paquet jmri.jmrit
|
|
<dd>contient tout le code pour les outils JMRI non spécifiques au système et extensions
|
|
La plupart des outils sont dans des sous-paquets, mais certains apparaissent directement dans le paquet
|
|
|
|
<dt>Le paquet jmri.jmrix
|
|
<dd>Contient tout le code pour se connecter à
|
|
du matériel spécifique du réseau ferré.
|
|
|
|
<dt>Les paquetsjmri.managers et jmri.implementations
|
|
<dd>Ceux-ci fournissent des mises en œuvres par défaut pour les gestionnaires
|
|
et les autres classes. Cela déplace le code du paquet
|
|
primaire JMRI. Ils ne doivent pas répondre à des applications, jmri.jmrix
|
|
ou jmri.jmrit.
|
|
|
|
<dt>paquet jmri.util
|
|
<dd>Autres mise en oeuvre courantes d'usage général.
|
|
Ne devrait pas dépendre des paquets jmri.jmrit ou jmri.jmrix.
|
|
Le sous-paquet jmri.util.swing fournit les utilitaires Swing
|
|
|
|
<dt>paquet Apps
|
|
<dd>Pour rassembler une application, cela peut
|
|
dépendre de n'importe quoi.
|
|
|
|
<dt>Sous-répertoires configurexml
|
|
<dd>Ceux-ci contiennent le code pour le
|
|
<a href="XmlPersistance.shtml"> système de configuration XML</a>
|
|
les paquets de haut niveau, esp util & dependancies, apps.
|
|
|
|
<dt>Sous-répertoires swing
|
|
<dd>Contient les outils Swing spécifiques.
|
|
En particulier à l'extérieur du paquet jmri.jmrit,
|
|
nous essayons de séparer le code Swing du
|
|
code normal opérationnel.
|
|
Voir la <a href="Swing.shtml"> page Swing</a>
|
|
pour plus d'informations.
|
|
|
|
<dt>Help files (fichiers d'aide)
|
|
<dd>La structure du fichier d'aide,
|
|
les fichiers échos de la structure du code.
|
|
Pour plus d'informations, voir la page d'aide
|
|
<a href="Help.shtml"> dans les pages JavaHelp</a>.
|
|
|
|
<dt>ResourceBundles
|
|
<dd>Nous utilisons le regroupements de ressources pour <a href="I8N.shtml">l'internationalisation</a>.
|
|
Elles sont colocalisée avec le code qui les référence,
|
|
mais nous nous dirigeons vers une nouvelle convention de dénomination.
|
|
Pour réduire le fardeau de chargement, nous nous dirigeons vers un
|
|
modèle où le fichier jmri.foo.FooBundle.properties
|
|
est adressé par un élément statique dans la
|
|
classe jmri.foo.FooBundle, séparé des
|
|
propriétés du fichier lui même. Cela réduit
|
|
beaucoup le temps de chargement!
|
|
<br>
|
|
Notez qu'il existe également quelques
|
|
regroupements de ressources qui sont utilisés à d'autres fins,
|
|
indiqués dans leurs commentaires en tête.</dd>
|
|
</dl>
|
|
|
|
<p>Le script outil de développement "checkdepends.csh"
|
|
est destiné à vérifier certaines des dépendances par inadvertance,
|
|
mais nous sommes loin de l'effacer.</p>
|
|
|
|
<!--#include virtual="/help/fr/parts/Footer_fr.shtml" -->
|
|
</div><!-- closes #mainContent-->
|
|
</div> <!-- closes #mBody-->
|
|
<script src="/js/help.js"></script>
|
|
</body>
|
|
</html>
|