Closed lounres closed 4 months ago
Постаралася учесть данные упрощения.
Осталось по аналогии совместить определение и инициализацию переменных program
и resultMatrix
. Плюс, не нужна изменяемость этих переменных (в Multiplyer
тоже).
Исправил.
Определения и инициализации program
и resultMatrix
всё ещё не объединены. Я имею в виду такой statement:
override val resultMatrix: FloatArray = FloatArray(firstRowCount * secondColumnCount)
// и по аналогии для `program`.
init
— нежелательный паттерн. Советуют использовать совмещённые объявление и инициализацию как выше. А если есть какая-то сложная логика, то её обычно выносят в фальш-конструктор, а основной (и причём единственный) конструктор просто закрывают (ставят модификатор internal
).
Исправил.
Хорошо.
можно написать просто
Вместо
можно написать
Multiplier
можно совместить с инициализацией этих переменных в блокеinit
. Например,А потом перенести подобные определения в основной конструктор, т.е. как
А также Вы больше нигде не используете изменяемость этих переменных. Так что их можно сделать неизменяемыми как в классе
Multiplier
(который сейчас уже можно сделать интерфейсом), так и в его наследниках.