Является ли это нарушением принципа единой ответственности (ПСП) - PullRequest
0 голосов
/ 26 февраля 2020

Методы getSummary и getMovementType нарушают SRP, поскольку знают слишком много (Context)? Эти методы используются в RecyclerView.Adapter.

abstract class Movement(
    val movementId: Int = 0,
    val created: Date = Date(),
    val createdBy: String = "",
    val movementActive: String = Constants.ACTIVE,
    var quantity: Double = 0.0,
    var material: Material = Material()
) {
    abstract fun getSummary(context: Context): String
    abstract fun getMovementType(context: Context): String
}


data class Entry(
    val id: Int = 0,
    var observation: String = "",
    var warehouse: Warehouse = Warehouse()
) : Movement() {

    override fun getSummary(context: Context) =
        context.getString(R.string.title_warehouse) + ": ${warehouse.name}. " +
        context.getString(R.string.title_material) + ": ${material.name}. " +
        context.getString(R.string.quantity) + ": $quantity. " +
        context.getString(R.string.observation) + ": $observation. " +
        context.getString(R.string.user) + ": $createdBy"

    override fun getMovementType(context: Context) = context.getString(R.string.title_entry)
}

1 Ответ

2 голосов
/ 26 февраля 2020

Нет, это не так.

Независимо от того, что метод знает (контекст в вашем случае), SRP собирается "сделать единственную ответственность".

Я вижу, что ваши методы возвращают только некоторые значения из контекста. Не позволяйте им делать что-либо еще (например, что-то устанавливать где-то или отправлять что-либо куда-либо), и вы следуете SRP

...