2010-07-29 3 views
21

Dites que vous êtes en déclarant une classe avec toutes les cloches et de sifflets - constructeur et destructor, public, méthodes privées, protégées et statiques et des propriétés, méthodes magiques, etc.Comment organisez-vous les méthodes et les propriétés au sein d'une classe?

Comment organisez-vous logiquement tout cela? Par exemple, regroupez-vous les choses par visibilité? Est-ce que vous alphabétisez les noms de méthodes? Est-ce que vous regroupez des méthodes magiques ensemble? Mettez-vous le constructeur au début et le destructeur à la fin?

Évidemment, c'est subjectif, mais je suis curieux d'entendre ce qui a fonctionné pour les autres, ou ce que vous trouvez facile à naviguer en lisant le code des autres.

Répondre

24
  1. Constantes
  2. champs par visibilité (public, protégé, privé)
  3. Constructeur et Destructeur et d'autres méthodes magiques
  4. Méthodes de visibilité (public, protégé, privé)

Si J'ai le temps, j'essaye de les mettre dans l'ordre alphabétique; P

+0

La plupart de ce que je ferais, seulement mes méthodes sont d'abord triées en étant soit des méthodes d'instance et statique. – Wrikken

+0

J'ai rarement des méthodes statiques donc je les ai omis. Mettra à jour la liste – Mchl

+0

Par visibilité = le plus au moins? Comme public, protégé, privé? –

0

Personnellement, je mets des variables de classe au dessus (par visibil ity), puis les méthodes magiques, puis les méthodes publiques, puis les méthodes protégées/privées. Il est une combinaison de choses dans la commande plus souvent éditée au moins souvent et modifié ce qui rend évident ce qui se passe dans les méthodes importantes (ce qui explique pourquoi les méthodes magiques sont plus élevés que ce qu'ils seraient normalement).

0

Je suppose que le seul type d'organisation que je fais dans une fonction est de mettre __construct au premier plan alors la classe grandit sans aucune organisation de ma part mais je commence habituellement par des fonctions non publiques et termine par les fonctions publiques

0

Personnellement, j'ai des constantes de classe en haut; propriétés suivantes, en essayant de maintenir dans l'ordre de privé, protégé, puis public. Pour les méthodes, je vais pour accesseurs d'abord, puis d'autres méthodes internes vaguement regroupées, suivi par __construct et d'autres méthodes magiques, avec des méthodes statiques dernières .... mais je finis rarement garder absolument à cette commande.

7

comme celui-ci

class Foobar 
{ 
     var $public; 

     function __construct(.... 

     function public_method_1()... 
     function public_method_2()... 

     // 

     var $_priv; 

     function _private_1()... 
     function _private_2()... 
} 

essentiellement, le plus intéressant (pour les utilisateurs de classe) substance première

+2

J'aime l'idée "la plus intéressante d'abord" –

0

Pour être honnête (et cela va sonner comme une mauvaise pratique) Je ne fais aucun effort pour arrangez-les dans n'importe quel ordre particulier. Travailler avec Visual Studio et ReSharper signifie sa grande partie inutile.

+0

I Je ne connais pas ces programmes - pourquoi rendent-ils l'ordre non pertinent? J'utilise Zend Studio, et il me montrera un aperçu des méthodes si je veux. Le contour est plus facile à analyser si c'est dans un certain ordre. Qu'est-ce qui est différent dans votre configuration? –

+0

Visual Studio est l'IDE de Microsoft pour le développement d'applications .Net et Resharper est un plugin pour cela qui fournit diverses améliorations. Avec un fichier de classe ouvert dans Visual Studio, vous pouvez utiliser une liste déroulante pour accéder à une propriété/méthode particulière. Resharper a la fonction par laquelle lorsque vous appuyez sur un raccourci clavier vous pouvez taper une méthode qu'il trouve dans une recherche de solution large (vous permettant alors de sauter à cette méthode à l'intérieur et sa classe) – ChrisFletcher

2

Je mets d'abord les variables statiques, ensuite la variable de classe. alors je place généralement le constructeur comme la première méthode (ou si c'est une classe avec "init" ou une autre méthode appelée par un cadre, je vais mettre cela en haut)

Ensuite, j'essaie de garder les liens méthodes regroupées de manière à avoir le moins de défilement, mais cela peut devenir désordonné après un certain temps. Avoir un EDI comme Eclipse + PDT ou vsPHP vous montrera la vue générale de votre classe et vous pouvez trier les méthodes comme vous le souhaitez afin que vous n'ayez pas à chercher dans le code.

Questions connexes