Skip to content

🧩 ArchiveDisplayer ​

GUI 契约层 接口

单方法接口,表示「能显示一个存档文件」的最低公约数。

📁 源码:ClassySharkWS/src/com/google/classyshark/gui/panel/ArchiveDisplayer.java   📦 包:com.google.classyshark.gui.panel

职责 ​

ArchiveDisplayer 是仅含一个方法 displayArchive(File file) 的接口。它是 ToolbarController 与 ViewerController 共同扩展的最低公约数,使得文件打开/拖放处理程序可以把目标当作「一个能显示存档的东西」来编程,而不必依赖整个 ClassySharkPanel。

关键方法 / 字段 ​

名称类型说明
displayArchive(File file)void显示指定存档文件

工作流程 ​

mermaid
flowchart LR
    A["FileTransferHandler / RecentArchivesButton"] --> B["持有 ArchiveDisplayer"]
    B --> C["调用 displayArchive(file)"]
    C --> D["具体实现(ClassySharkPanel)加载存档"]

设计要点 ​

  • 🎯 最小接口 — 只一个方法,是「能显示存档」这一能力的最小抽象。
  • 🔗 被多接口继承 — ToolbarController 与 ViewerController 均 extends ArchiveDisplayer,让拖放与最近存档按钮可针对最小接口编程。
  • 🧩 依赖倒置 — [[FileTransferHandler]] 与 [[RecentArchivesButton]] 注入的是本接口而非整个面板,这是拖放能在三个放置区(树/显示区/环形图)统一生效的根因。

协作关系 ​

  • 实现 ← [[ClassySharkPanel]](通过实现 ToolbarController/ViewerController 间接实现)
  • 被扩展 ← [[ToolbarController]]、[[ViewerController]]
  • 被调用 ← [[FileTransferHandler]]、[[RecentArchivesButton]]

已知问题 / TODO ​

  • 无明显已知问题;最小接口设计稳定。

相关文档 ​

  • GUI 架构
  • [[ViewerController]]
  • [[ToolbarController]]

最后更新:

基于 Apache 2.0 协议发布