多重数据处理是否违反了接口分离原则?

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

我有代码。

enter image description here

@startuml

interface DbReader{
{abstract} read()
}

interface DbWriter{
{abstract} write(obj)
}

class DbConcrete {
read()
write(obj)
}

DbConcrete .up.|> DbReader
DbConcrete .up.|> DbWriter

Reader ..> DbReader
Writer ..> DbWriter

@enduml

Reader 类使用 DbReader 接口,Writer 类使用 DbWriter 接口。

但是读写方法的具体实现是在同一个类DbConcrete中。

而且看起来接口是分开的。但是 Reader 对象变得如此依赖于 DbConcrete 类的实际对象。是的,这只取决于阅读界面。但是,无论谁编写 DbConcrete 类来改进/纠正 write() 方法,也必须注意 read() 方法。看来 ISP 与其说是在谈论接口,不如说是在谈论禁止对脂肪实体的依赖。

我的想法正确吗?上述实现是否违反了ISP原则?

oop multiple-inheritance interface-segregation-principle
1个回答
0
投票

如果你想尊重并更贴近ISP,你可以将

DbReader
DbWriter
的实现分开:

Adhering to ISP

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.