J'ai une classe qui met en place un tableau de nœuds et les connecte les uns aux autres dans une structure de type graphique. Est-il préférable de:
- Conservez la fonctionnalité pour initialiser et connecter les nœuds dans une seule fonction
- Avoir la fonctionnalité d'initialisation et de connexion dans deux fonctions différentes (et avoir un ordre dépendant sur lequel les fonctions doivent être appelées - mais gardez à l'esprit que ces fonctions sont privées.)
Méthode 1: (mauvaise dans la mesure où une fonction fait deux choses, MAIS elle conserve les fonctionnalités dépendantes regroupées - les nœuds ne doivent jamais être connectés sans avoir été initialisés au préalable.)
init() {
setupNodes()
}
private func setupNodes() {
// 1. Create array of nodes
// 2. Go through array, connecting each node to its neighbors
// according to some predefined constants
}
Méthode 2: (Mieux dans le sens où il est auto-documenté, MAIS connectNodes () ne doit jamais être appelé avant setupNodes (), donc toute personne travaillant avec les internes de la classe doit connaître cet ordre.)
init() {
setupNodes()
}
private func setupNodes() {
createNodes()
connectNodes()
}
private func createNodes() {
// 1. Create array of nodes
}
private func connectNodes() {
// 2. Go through array, connecting each node to its neighbors
// according to some predefined constants
}
Excité d'entendre des pensées.