У меня есть класс, который устанавливает массив узлов и соединяет их друг с другом в виде графа. Это лучше всего:
- Сохраняйте функциональность для инициализации и соединения узлов в одной функции
- Имейте функции инициализации и подключения в двух разных функциях (и имейте зависимый порядок, в котором функции должны быть вызваны - хотя имейте в виду, что эти функции являются частными.)
Метод 1: (Плохо, что одна функция делает две вещи, НО сохраняет зависимые функции сгруппированными - узлы никогда не должны соединяться без предварительной инициализации.)
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
}
Способ 2: (лучше в том смысле, что он самодокументируется, но connectNodes () никогда не следует вызывать перед setupNodes (), поэтому любой, кто работает с внутренними компонентами класса, должен знать об этом порядке.)
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
}
Рад слышать любые мысли.