Je veux faire une classe Singleton qui prolonge DBI. devrais-je faire quelque chose comme ceci: ou ceci: p> ou quelque chose d'autre? p> pas vraiment Bien sûr, quelle est la différence entre "user base" et "isa". p> p>
4 Réponses :
Je pense que vous devriez utiliser le parent code> pragma au lieu de base code> comme a été suggéré dans Perldoc Base code>. P>.
Est-ce que "parent" neuf en 5.10? Ce doit être, car ce n'est pas dans ma documentation 5.8.
Je ne suis pas sûr. Toutefois, citant la déclaration de Chas: "... Le Pragma parent est nouveau à partir de Perl 5.10.1, mais il est immobile de CPAN si vous avez une version plus ancienne de Perl. ..."
L'utilisation typique de la base Si vous souhaitez héritage multiple, vous pouvez fournir plusieurs module à le parent @isa code> est base code> et parent code> pragmas à la fois charger le Classe demandée et modifier @isa code> pour l'inclure: p> BASE code> ou parent code>: p> code> pragma est nouveau à partir de Perl 5.10.1, mais il est installable de CPAN si vous avez une version plus ancienne de Perl. Il a été créé car la base code> Pragma était devenue difficile à maintenir en raison de "Cruft qui l'avait accumulée". Vous ne devriez pas voir une différence dans l'utilisation de base entre les deux. P> p>
de la base de Perldoc ... est essentiellement équivalent à p> personnellement, j'utilise base. P> < / p>
La dernière base.pm dit aux gens d'utiliser le parent, qui est en 5.10.1. :)
Si vous souhaitez hériter de la classe mère, vous devez le charger et modifier @isa. Ces deux étapes sont prises en charge lorsque vous utilisez la base. La base charge le module pour vous et modifiez @isa en conséquence. Sinon, vous devez modifier @isa et charger le module parent par vous-même.
Les deux éléments suivants sont équivalents: p> et p>
Eh bien, la documentation de base.pm vous indique la différence.