diff --git a/README.md b/README.md index e4da3cfb3230008f9f3d095caf0825bc49b46ea8..908fa1c468510a1912dbb0278ccd15932e997b5d 100644 --- a/README.md +++ b/README.md @@ -84,6 +84,7 @@ classDiagram Objectif : +isDone() boolean ``` +Implémentez ces classes dans un sous-paquetage *q2*. On devra par exemple pouvoir dérouler le scénario suivant (pour y parvenir quelques questions ci-dessous pour vous guider) : <pre> @@ -156,33 +157,38 @@ La monodirectionnelle propage les changement d’une propriété (« source » Ce sont des mécanismes pratiques mais qui obligent à importer JavaFX ce qui n’est pas toujours souhaitable dans un projet. Vous devez réimplémenter ces mécanismes des propriétés. -**Q2.1** Rendez la classe ObservableProperty observable. +Rendez la classe ObservableProperty observable. Outre le fait qu'elle soit observable (attach, detach), cette classe doit avoir une propriété à laquelle on peut accéder : ```java package fr.univlille.iut.r304.tp3.q3; -public class ObservableProperty +public class ObservableProperty { -public Object getValue() + public Object getValue() { + + } -public void setValue(Object val) + public void setValue(Object val) { + + } ... +} ``` Bien sûr, le fait de changer la valeur de la propriété doit être notifié aux observateurs de celle-ci. Notez que par simplicité, on utilisera une propriété de type `Object` (donc n'importe quel type). -Vous pouvez aussi définir une classe générique avec un type paramétrique pour typer cette propriété. +On aurait aussi pu définir une classe générique avec un type paramétrique pour typer cette propriété. Vérifier la validité de votre implémentation en exécutant les tests associés à cette question. -**Q2.2** Créez la classe ConnectableProperty qui puisse se connecter de façon mono ou bi-directionnelle : +Implémentez la classe ConnectableProperty qui puisse se connecter de façon mono ou bi-directionnelle : ```java package fr.univlille.iut.r304.tp3.q3; -public class ConnectableProperty extends ObservableProperty +public class ConnectableProperty extends ObservableProperty { public void connectTo(ConnectableProperty other) { } @@ -194,3 +200,24 @@ public void unconnectFrom(ConnectableProperty other) { } ... ``` +## Partie 4 : Application avec la conversion de devises + +On souhaite réaliser une application de portefeuille gérant la conversion dans différentes monnaies. +Dans un premier temps, on va disposer d'un montant en euros et souhaiter l'afficher aussi en dollars. + +Dans un sous-paquetage *q4*, implémentez une classe **Devise** héritant de *ConnectableProperty* de manière à pouvoir instancier deux devises différentes, l'une correspondant aux euros, l'autre aux dollars. +Les valeurs n'étant pas les mêmes dans les deux monnaies, la méthode *void update(Subject other, Object data)* va être à redéfinir de manière à opérer la conversion. + +Une fois la classe implémentée, réalisez un *Main* avec 2 devises synchronisées, l'ajoutant ou le retrait d'un montant dans l'une se répercutant automatiquement sur l'autre. + +Voici un exemple de scénario : +``` +Ajout 20$ +18,00 € +20,00 $ +Retrait 11€ +7,00 € +7,78 $ +``` + +Ajoutez une troisième devise et démontrez la validité de votre solution à l'aide de tests. \ No newline at end of file diff --git a/out/production/main/fr/univlille/iut/r304/tp4/q1/Observable.class b/out/production/main/fr/univlille/iut/r304/tp3/q1/Observable.class similarity index 67% rename from out/production/main/fr/univlille/iut/r304/tp4/q1/Observable.class rename to out/production/main/fr/univlille/iut/r304/tp3/q1/Observable.class index 1c4244fded8eba21f7ee2333939fad0bcc10e3d7..f6dccbb84f864223cb8c3aba82ecc451cf307d20 100644 Binary files a/out/production/main/fr/univlille/iut/r304/tp4/q1/Observable.class and b/out/production/main/fr/univlille/iut/r304/tp3/q1/Observable.class differ diff --git a/out/production/main/fr/univlille/iut/r304/tp3/q1/Observer.class b/out/production/main/fr/univlille/iut/r304/tp3/q1/Observer.class new file mode 100644 index 0000000000000000000000000000000000000000..05a6e1fb90fd9e915e353d4b3a92d1575634a876 Binary files /dev/null and b/out/production/main/fr/univlille/iut/r304/tp3/q1/Observer.class differ diff --git a/out/production/main/fr/univlille/iut/r304/tp4/q2/ConnectableProperty.class b/out/production/main/fr/univlille/iut/r304/tp3/q3/ConnectableProperty.class similarity index 62% rename from out/production/main/fr/univlille/iut/r304/tp4/q2/ConnectableProperty.class rename to out/production/main/fr/univlille/iut/r304/tp3/q3/ConnectableProperty.class index ad0999eea2d7db11370cd2eb338c9eea4e64370b..395e282acbcd42d513c8f89c7771314ed4b20d29 100644 Binary files a/out/production/main/fr/univlille/iut/r304/tp4/q2/ConnectableProperty.class and b/out/production/main/fr/univlille/iut/r304/tp3/q3/ConnectableProperty.class differ diff --git a/out/production/main/fr/univlille/iut/r304/tp4/q2/ObservableProperty.class b/out/production/main/fr/univlille/iut/r304/tp3/q3/ObservableProperty.class similarity index 72% rename from out/production/main/fr/univlille/iut/r304/tp4/q2/ObservableProperty.class rename to out/production/main/fr/univlille/iut/r304/tp3/q3/ObservableProperty.class index 5033e4acddb0b10a48822592ed62737f2b8e5f20..56d4ad73cdc0228b9b1816323930bbaca3c70368 100644 Binary files a/out/production/main/fr/univlille/iut/r304/tp4/q2/ObservableProperty.class and b/out/production/main/fr/univlille/iut/r304/tp3/q3/ObservableProperty.class differ diff --git a/out/production/main/fr/univlille/iut/r304/tp4/q1/Observer.class b/out/production/main/fr/univlille/iut/r304/tp4/q1/Observer.class deleted file mode 100644 index bdbc554d07a2311a0819cfaf6d9318e35efccdad..0000000000000000000000000000000000000000 Binary files a/out/production/main/fr/univlille/iut/r304/tp4/q1/Observer.class and /dev/null differ diff --git a/out/test/test/fr/univlille/iut/r304/tp3/q1/ObserverTestStub.class b/out/test/test/fr/univlille/iut/r304/tp3/q1/ObserverTestStub.class new file mode 100644 index 0000000000000000000000000000000000000000..a28ffc964afc6d0a6bb8067f988a0753bc43e95b Binary files /dev/null and b/out/test/test/fr/univlille/iut/r304/tp3/q1/ObserverTestStub.class differ diff --git a/out/test/test/fr/univlille/iut/r304/tp3/q1/TestQ1$MockSubject.class b/out/test/test/fr/univlille/iut/r304/tp3/q1/TestQ1$MockSubject.class new file mode 100644 index 0000000000000000000000000000000000000000..d726b5639e54ddb41d3775227b34ce62123cd72e Binary files /dev/null and b/out/test/test/fr/univlille/iut/r304/tp3/q1/TestQ1$MockSubject.class differ diff --git a/out/test/test/fr/univlille/iut/r304/tp4/q1/TestQ1.class b/out/test/test/fr/univlille/iut/r304/tp3/q1/TestQ1.class similarity index 60% rename from out/test/test/fr/univlille/iut/r304/tp4/q1/TestQ1.class rename to out/test/test/fr/univlille/iut/r304/tp3/q1/TestQ1.class index 96d285541ac9cef5378ac6ed300657cc69a0b0a1..9b70a29b761849982c49f89ee428dadff6fdfaaa 100644 Binary files a/out/test/test/fr/univlille/iut/r304/tp4/q1/TestQ1.class and b/out/test/test/fr/univlille/iut/r304/tp3/q1/TestQ1.class differ diff --git a/out/test/test/fr/univlille/iut/r304/tp4/q2/TestQ1.class b/out/test/test/fr/univlille/iut/r304/tp3/q3/TestQ1.class similarity index 76% rename from out/test/test/fr/univlille/iut/r304/tp4/q2/TestQ1.class rename to out/test/test/fr/univlille/iut/r304/tp3/q3/TestQ1.class index 123ebbd8be8230d9ba41d93946ca80ff8c6900c7..c63f32dbf2b562b679837e08411e925fe9c99fb9 100644 Binary files a/out/test/test/fr/univlille/iut/r304/tp4/q2/TestQ1.class and b/out/test/test/fr/univlille/iut/r304/tp3/q3/TestQ1.class differ diff --git a/out/test/test/fr/univlille/iut/r304/tp4/q2/TestQ2.class b/out/test/test/fr/univlille/iut/r304/tp3/q3/TestQ2.class similarity index 88% rename from out/test/test/fr/univlille/iut/r304/tp4/q2/TestQ2.class rename to out/test/test/fr/univlille/iut/r304/tp3/q3/TestQ2.class index 642e02ee83b5ad7150ba4a96340abf9643665c30..0751e0e46e122f98b0ae37b8c7b6968a9e944091 100644 Binary files a/out/test/test/fr/univlille/iut/r304/tp4/q2/TestQ2.class and b/out/test/test/fr/univlille/iut/r304/tp3/q3/TestQ2.class differ diff --git a/out/test/test/fr/univlille/iut/r304/tp4/ObserverTestStub.class b/out/test/test/fr/univlille/iut/r304/tp4/ObserverTestStub.class deleted file mode 100644 index 98f425f29666fde6fccc351ecb81bb2bb7eb8dbd..0000000000000000000000000000000000000000 Binary files a/out/test/test/fr/univlille/iut/r304/tp4/ObserverTestStub.class and /dev/null differ diff --git a/out/test/test/fr/univlille/iut/r304/tp4/q1/TestQ1$MockSubject.class b/out/test/test/fr/univlille/iut/r304/tp4/q1/TestQ1$MockSubject.class deleted file mode 100644 index b2b5928bb29ab21ccd330a1a89368f542a08cd23..0000000000000000000000000000000000000000 Binary files a/out/test/test/fr/univlille/iut/r304/tp4/q1/TestQ1$MockSubject.class and /dev/null differ