Bonjour à tous,
Ce post vient à la base d'une question que je me suis posée sur C#, mais j'aimerais savoir ce qu'il en est en Java :
Je cherche à savoir s'il existe une façon pour qu'un objet (ainsi que tout ce qu'il contient ou référence) soit accessible depuis une autre classe mais uniquement en lecture seule.
Je m'explique :
Bien sur je pourrais faire pour l'intégralité des propriétés de l'objet concerné des propriétés au sein de Classe1 accessible uniquement avec Get{} sans Set{}, ou utiliser la méthode Dataset.Copy mais je pense que vous aurez compris que ce n'est pas ce que je cherche.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 class Class2 { Classe1 instance_1 = new Classe1(); void test() {//Objectif : Ici le code du type : instance_1.Doit_etre_en_lecture.CaseSensitive = false; //ne doit pas fonctionner car on essaie de modifier la valeur d'une propriété ou d'un objet "descendant" de l'objet Doit_etre_en_lecture; bool flag1 = instance_1.Doit_etre_en_lecture.CaseSensitive; // Doit fonctionner car dans ce cas on essaie pas d'écrire sur le dataset "Doit_etre_en_lecture" mais de lire. } } class Classe1 { public DataSet Doit_etre_en_lecture = new DataSet(); }
En un mot en termes d'encapsulation mon but est de pouvoir me dire "Le code de la Classe2 voit un objet donné de l'instance de la classe1" mais il n'est pas en mesure d'agir dessus, ni sur les tables, ni sur les noms des colonnes des tables, ni sur quoi que ce soit. Il permet de lire les objets du dataset, mais pas de les modifier."
Merci à tous et bonne soirée,
Vincent.
Partager