Bonjour,
Je ne sais pas si la méthode dont je vais parler est vraiment un design pattern, mais concernant la programmation orientée objet, elle est surement bien ici.
J'utilise parfois une méthode, mais sans jamais avoir lu d'articles sur elles. J'espère donc que vous la connaissez, pour que je puisse trouver des infos dessus.
Voici la bête:
Le but est qu'un objet ait un accès restreint aux méthodes d'un autre objet, puisqu'il n'a pas les droits complets dessus (un peu comme un programme qui n'est pas root, qui n'a donc que des droits utilisateurs sur le système).
Pour implémenter cela, j'utilise ce que j'appelle l' "interface restreinte".
Par exemple, il y a un objet de classe System (qu'on nommera ObjSystem) et un objet de classe Program (qu'on nommera ObjProgram). ObjProgram a besoin d'un pointeur vers ObjSystem pour lui faire exécuter des méthodes.
Cependant, ObjProgram n'a pas le droit d'appeler toutes les méthodes de ObjSystem, car cela pourrait tout casser. Il faut donc qu'il ait accès à seulement quelques méthode de ObjSystem, comme GetTime (c'est l'accès restreint).
Pour cela, on crée une nouvelle classe, SystemForUser, dont dérive System, qui ne propose que GetTime et les autres méthodes qui ne risquent pas de tout casser si elles sont appelées par n'importe qui. Cette classe n'aurait pas été crée si ce n'était pour proposer ces méthodes.
On donne alors un pointeur vers ObjSystem à ObjProgram, mais de type SystemForUser. ObjProgram ne peut donc avoir accès aux méthodes à risque de System. On a bien créer un accès limité.
Est ce que vous connaissez le nom de cette méthode?
Est ce que vous avez des infos là dessus?
Merci d'avance!!!
Remarque: en C++, on doit pouvoir faire l'équivalent en mettant les classes à risque de System en protected, friend des classes autorisées à les appeler, ou en utilisant des const.
Partager