codlab / library_project

Simple repo as example
0 stars 10 forks source link

Double instanciations d'objet (ex: category Controller) #7

Open Pragmacmd opened 6 years ago

Pragmacmd commented 6 years ago

Bonsoir,

Dans la classe DatabaseController la méthode init() utilise open() et foreach :

Dans open() on crée un objet LibraryDatabase qui fait appel à une methode super() qui elle-même crée les valeurs par défaut. Lors de cette création on instancie les controllers :

protected void onInsertDefaultValues() { CategoryController.getInstance().init(this); FilmController.getInstance().init(this); MetaDataController.getInstance().init(this);

Puis de retour dans init() on crée un tableau d'objet que l'on utilise pour le foreach : private final static AbstractController[] CONTROLLERS = new AbstractController[] { MetaDataController.getInstance(), CategoryController.getInstance(), FilmController.getInstance() };

N'est-ce pas redondant ? Est-ce que la JVM crée 2 objets différents ?

Merci d'avance.

codlab commented 6 years ago

Sur ce point, on peut imaginer une petite amélioration pour permettre de s'assurer de nettoyer un peu le comportement :

Kévin Le Perf Codlabtech - AutoEntrepreneur Ingénieur développement mobile et Securité Informatique http://codlab.eu +33 6 03 12 40 75

Le 16 février 2018 à 01:53, Alexis Bodin notifications@github.com a écrit :

Bonsoir,

Dans la classe DatabaseController la méthode init() utilise open() et foreach :

Dans open() on crée un objet LibraryDatabase qui fait appel à une methode super() qui elle-même crée les valeurs par défaut. Lors de cette création on instancie les controllers :

protected void onInsertDefaultValues() { CategoryController.getInstance().init(this); FilmController.getInstance().init(this); MetaDataController.getInstance().init(this);

Puis de retour dans init() on crée un tableau d'objet que l'on utilise pour le foreach : private final static AbstractController[] CONTROLLERS = new AbstractController[] { MetaDataController.getInstance(), CategoryController.getInstance(), FilmController.getInstance() };

N'est-ce pas redondant ? Est-ce que la JVM crée 2 objets différents ?

Merci d'avance.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/codlab/library_project/issues/7, or mute the thread https://github.com/notifications/unsubscribe-auth/ADdMg2iePQSCc-el_9QUe0jgE8u5mxWFks5tVNGOgaJpZM4SHvUy .