Mam klasę, która ustawia tablicę węzłów i łączy je ze sobą w strukturze graficznej. Czy najlepiej:
- Zachowaj funkcjonalność, aby zainicjować i połączyć węzły w jednej funkcji
- Mają funkcje inicjalizacji i połączenia w dwóch różnych funkcjach (i mają zależną kolejność, w której funkcje muszą być wywoływane - należy jednak pamiętać, że te funkcje są prywatne).
Metoda 1: (Zła w tym, że jedna funkcja robi dwie rzeczy, ALE utrzymuje zgrupowane funkcje zależne razem - nigdy nie należy łączyć węzłów bez inicjalizacji).
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
}
Metoda 2: (Lepiej w tym sensie, że jest to samo-dokumentowanie, ALE connectNodes () nigdy nie powinno być wywoływane przed setupNodes (), więc każdy, kto pracuje z wewnętrznymi elementami klasy, musi wiedzieć o tej kolejności).
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
}
Podekscytowany, aby usłyszeć jakieś myśli.