2010-04-30 10 views
2

J'essaie de suivre DRY et j'ai quelques fonctions que je dois réutiliser. Je les mets tous comme des fonctions statiques dans une classe et je veux les utiliser dans une autre classe.comment rendre les fonctions globales?

Quelle est la meilleure façon de les rendre disponibles à une classe. Parce que je ne peux pas étendre la classe, c'est déjà étendu.

Devrais/pourrais-je utiliser la composition? Quelle est la meilleure pratique?

Quelle est la meilleure pratique?

merci!

Répondre

3

méthodes de la classe publique (vs méthodes d'instance, par exemple non statique) sont toujours disponibles à partir de la portée globale, vous pouvez donc les appeler statiquement en cas de besoin. Mais gardez à l'esprit que static methods are death to testability et couple dur en utilisant des classes au global scope et le used class. Vous voulez éviter cela, il est donc préférable de vous débarrasser des méthodes statiques en faveur des méthodes d'instance et de passing in the dependency/object instance via le constructeur ou un setter. Ajoutez un interfaceType Hint si vous voulez vous assurer que l'instance transmise possède un certain ensemble de méthodes.

4

Si elles sont statiques, appelez-les simplement depuis votre deuxième classe.

First_Class::method(); 
Questions connexes