Методы улучшения качества кода: № 72 Концептуальная циклическая зависимость – это курица первой или яйцо первым?

Привет. Я Туан Чау, который разрабатывает мобильный клиент для линии приложения для связи.

Эта статья представляет собой 72 -й выпуск серии обмена «Комитетом по рассмотрению». Line Yahoo имеет деятельность под названием Комитет по обзору для поддержания высокой производительности развития. Мы регулярно делимся знаниями, которые мы собираем здесь с нашей компанией, и некоторые из них также публикуются в этом блоге. (Для получения дополнительной информации о отчете комитета по рассмотрению см.Список прошлых статей(Пожалуйста, обратитесь к)

Курица первой или яйцо первой?

Специализируясь на предоставлении фотографийphoto-providerПоказать фотографии в галерее с модулемhome-galleryПредставьте, что есть такой модуль.photo-providerПредположим, вы хотите показать фотографии, представленные в вашей домашней галерее.

Ниже приведен упрощенный код:

photo-providerМодуль:

// PhotoProvider.kt
class PhotoProvider {
    fun getPhotos(): List {
        // リポジトリから写真を取得
        return listOf(HomeGalleryPhotoItem("vacation.jpg", "Summer Vacation", ...))
    }
}

// プロバイダーモジュール内のデータモデル
data class HomeGalleryPhotoItem(val fileName: String, val description: String, ...)

home-galleryМодуль:

// build.gradle.kts
dependencies {
    implementation(project(":photo-provider"))
}
// HomeGallery.kt (別のモジュール内)
class HomeGallery(private val photoProvider: PhotoProvider) {
    fun displayPhotos() {
        val photos = photoProvider.getPhotos()
        // ホームギャラリーに写真を表示
        photos.forEach { renderPhoto(it) }
    }
    
    private fun renderPhoto(photo: HomeGalleryPhotoItem) {
        // UIで写真をレンダリング
    }
}

Есть ли что -то не так с этим кодом?

Круговая зависимость концепций

Проблема таковаPhotoProviderноHomeGalleryPhotoItemопределяет и возвращает этот класс, содержит ссылку на «HomeGaller» на его имя. ЭтотКруговая зависимость концепцийпроисходит.

  1. Модуль поставщика знает о конкретных пользователях (HomeGallery)

2025-09-04 02:00:00


1757045338
#Методы #улучшения #качества #кода #Концептуальная #циклическая #зависимость #это #курица #первой #или #яйцо #первым

Читайте также

Read more:  Linux 6.19-rc6 содержит исправления звука для ROG Xbox Ally X и различных ноутбуков

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.