Уэста. Кто знаком с книгами, насколько эти подходы актуальны в рамках андроида и можно ли вообще ориентироваться на мысли этих авторов? Некоторые моменты кажутся мне нерациональными или это я их не так понял:
В ООП все операции надо делать через класс и избегать статические методы. Например, для сложения двух чисел или нахождения синуса надо писать классы.
Но такой подход с созданием объекта на каждый плюс занимает лишнюю память, и статический метод из Math работает быстрее.
Не использовать Dto классы, потому что они нарушают инкапсуляцию. А ключевая идея ООП заключается в сокрытии данных за объектами. Объекты должны иметь доступ только к тем данным, которые они инкапсулируют, и никогда к данным, инкапсулированным другими объектами.
Это правильно про инкапсуляцию, но в Clean Architecture Dto везде используются (модели Data, Domain, Presentation слоёв, если я правильно понял). А клин вроде как стандарт.
Не должно быть публичных переменных. Как тогда получить какой-нибудь ид или использовать мапперы, если класс сам будет маппером, то это нарушение SRP.
Dao противоречит ООП, так как вместо того, чтобы инкапсулировать взаимодействие с базой данных внутри объекта, Dao извлекает его, а это превращает объекты в процедурные контейнеры данных.
Не могу понять, что тут не так, да и в Room Dao используется. И даже аннотация есть. На мой взгляд, это удобно. Если работать с базой в самом объекте, то получается, ее надо тащить во все слои, и смысл в слоях пропадает?
Не должно быть приватных методов, любой дублирующийся код надо выносить в классы.
А если код дублируется только в одном классе, то что плохого в приватном методе?
Полный отказ от использования null.
Но если где-то важен перформанс, то null ведь лучше, чем класс обозначающий отсутствие данных, многие функции SDK могут вернуть null. И почему проверка на null плохо, а проверка является ли объект инстансом класса пустых данных хорошо?
очень интересный вопрос, тоже увлекся этим недавно
Ну описанное перебор, то есть это все хорошо, но на уровне "к этому надо стремиться" а не "только так и пишем". Избегать null, статиков. Про null применительно к андроиду так скорее: - Если нам фреймворк вернул нулл, то оно дальше следующей строчки не идет - весь остальной код нами написанный нуллабельных переменных не содержит. А как писать просто хорошо можно посмотреть на реальных сэмплах от гугля.
Элегантные объекты вообще не применимы в Android
Обсуждают сегодня