gpt4 book ai didi

oop - SharedFolder中违反里氏替换原则

转载 作者:行者123 更新时间:2023-12-04 16:17:05 25 4
gpt4 key购买 nike

目前的设计是

  1. SharedFolderFolder 的子类。
  2. SharedFileFile 的子类,具有远程资源 URL。
  3. Folderadd 方法中接受 File
  4. SharedFolder 只接受 SharedFile 但不接受非共享的 File
  5. 文件可以通过add移动到另一个文件夹
  6. 用于浏览 SharedFolderFolder 中文件的 UI 基本相同。

SharedFile 中的add 违反了LSP。如何在允许部分 UI 代码重用的同时重新组织对象结构?

最佳答案

您可以泛化 Folder作为Folder<T extends File> , 与 add(T) , 并有 SharedFolder extends Folder<SharedFile> .

这边,SharedFolder预计只能替代另一个 Folder<SharedFile> ,但不是任何其他类型的 Folder<File>

(如果您的语言允许的话。这在 Java 中是可能的)

关于oop - SharedFolder中违反里氏替换原则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38737246/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com