théoriquement l'objet se suffit à lui-même et propose des méthodes destinées à son maniement.
l'objet vol doit permettre de gérer tous les aspects d'un vol, et son utilisation que ce soit par des classes de joueurs, un outil d'administration ou un script CRON. La méthode creer_vol en soi est un constructeur, qui demandera de renseigner les éléments principaux. Mais il n'y a pas de logique à ce qu'elle vérifie, elle la légalité de son appel, par une seelie ou quiconque. c'est la méthode creer_vol de la Seelie, qui doit le faire. (évidemment, on va éviter les homomnymes) après tout, c'est bien la classe Seelie qui connaît ses propres autorisations. Evidemment, s'il y a des dizaines de types de Seelie, il peut être intéressant de mettre côté vol un tableau d'attributs/autorisations : tout comme un fichier à ses attributs écriture/lecture/suppression et non pas chaque utilisateur une liste des fichiers autorisés.
Si j'étais en C++, j'aurais en gros un FlightManager avec son vector de Flight et ses attributs d'accès et création à lui. On y accederais par singloton. Il aurait une méthode AddNewFlight()... La classe LoneSeelie aurait la méthode CreateFlight() qui ferait FlightManager::getSingleton().AddNewFlight(this)
l'objet vol doit permettre de gérer tous les aspects d'un vol, et son utilisation que ce soit par des classes de joueurs, un outil d'administration ou un script CRON. La méthode creer_vol en soi est un constructeur, qui demandera de renseigner les éléments principaux. Mais il n'y a pas de logique à ce qu'elle vérifie, elle la légalité de son appel, par une seelie ou quiconque. c'est la méthode creer_vol de la Seelie, qui doit le faire. (évidemment, on va éviter les homomnymes) après tout, c'est bien la classe Seelie qui connaît ses propres autorisations. Evidemment, s'il y a des dizaines de types de Seelie, il peut être intéressant de mettre côté vol un tableau d'attributs/autorisations : tout comme un fichier à ses attributs écriture/lecture/suppression et non pas chaque utilisateur une liste des fichiers autorisés.
Si j'étais en C++, j'aurais en gros un FlightManager avec son vector de Flight et ses attributs d'accès et création à lui. On y accederais par singloton. Il aurait une méthode AddNewFlight()... La classe LoneSeelie aurait la méthode CreateFlight() qui ferait FlightManager::getSingleton().AddNewFlight(this)