Eu tenho uma classe que configura uma matriz de nós e os conecta um ao outro em uma estrutura semelhante a um gráfico. É melhor:
- Mantenha a funcionalidade para inicializar e conectar os nós em uma função
- Tenha a funcionalidade de inicialização e conexão em duas funções diferentes (e tenha uma ordem dependente na qual as funções devem ser chamadas - embora tenha em mente que essas funções são privadas).
Método 1: (Ruim, porque uma função está fazendo duas coisas, mas mantém a funcionalidade dependente agrupada - os nós nunca devem ser conectados sem serem inicializados primeiro.)
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étodo 2: (Melhor no sentido de que é auto-documentado, MAS connectNodes () nunca deve ser chamado antes de setupNodes (), portanto, qualquer pessoa que trabalhe com os internos da classe precisa conhecer essa ordem.)
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
}
Animado para ouvir qualquer pensamento.