Это нарушение принципа единой ответственности (SRP)
Сделайте методы 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 ответ
Нет, это не так.
Какой бы метод не знал (контекст в вашем случае), SRP собирается "взять на себя единственную ответственность".
Я вижу, что ваши методы возвращают только некоторые значения из контекста. Не позволяйте им делать что-либо еще (например, устанавливать что-то куда-то или что-то куда-то отправлять), и вы следуете SRP