这是否违反了单一责任原则(SRP)

问题描述 投票:0回答:1

getSummarygetMovementType方法是否了解过多(Context),是否违反了SRP?这些方法在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)
}
android kotlin single-responsibility-principle
1个回答
1
投票

不,不是。

[无论哪种方法都知道(在您的情况下是这样),SRP都将“承担单一责任”。

我看到您的方法仅从上下文返回一些值。不要让他们做任何其他事情(例如,将某物设置到某处或将某物发送到某处),并且您遵循SRP

© www.soinside.com 2019 - 2024. All rights reserved.