унаследовать от него несколько? Потому что там, как минимум, непонятно что с именами одинаковыми делать.
interface MarkersDelegate <T> {
val allMarkers: List<T>
}
interface GoogleMarkersDelegate <GoogleMarker> {
val allMarkers: List<GoogleMarker>
}
interface GoogleMarkersDelegate <GoogleMarker> {
val allMarkers: List<GoogleMarker>
}
class ViewModel():
GoogleMarkersDelegate by GoogleMarkersDelegateImpl(),
YandexMarkersDelegate by YandexMarkersDelegateImpl()
B вот во ViewModel вызову allMarkers
если у вас маркеры (GoogleMarker, Yandex Marker) не реализуют общий интерфейс, то лучше так не делать, а сделать просто 2 поля
в одном делагате два поля для гугл и яндекс маркеров? А если бы реализовывали общий интерфест?
в общем не, даже с общим интерфейсом не получится, тут надо 2 разных поля googleMarkers, yandexMarkers и мержить их во вью моделе непосредственно. т.е. имплементацию этого на себя делегаты берут, а вью модель просто складывает.
ого, а зачем их мёрджить? Я показываю гугл или яндекс маркеры в заисимости от userSettings Есть делегат для тех и для тех И каждый из них хранит маркеры соотвествующие
а, тогда зачем вам allMarkers вообще?)
ну вот типо allMarkers: List<YandexMarkers> в яндекс делегате и в allMarkers: List<GoogleMarker> в гугл делагате
почему не разделить на yandexMarkers, googleMarksers. или можно class ViewModel : MarkerContainer<T> by if(...) GoogleMarkers() else YandexMarkers()
ну в общем делагате кажется не очень правильным держать и googleMarkers, и yandexMarkers, вдруг потом ещё добавятся как-нибудь 2GisMarkers
Обсуждают сегодня