关闭。这个问题是opinion-based .它目前不接受答案。
想改善这个问题吗?更新问题,以便可以通过 editing this post 用事实和引文回答问题.
6年前关闭。
Improve this question
即使 MDI 是 considered harmful ,一些应用程序(甚至 MS Office、Adobe 应用程序)仍然以纯粹的形式使用它,或者作为带有选项卡式/类似 IDE 界面的混合形式使用它。
MDI 接口(interface)仍然适用于某些应用程序吗?
我正在考虑一个应用程序,其中一个人通常一次处理多个文档,并且经常希望有多个文档一面在它们之间查看或复制/粘贴。
一个例子是 Origin ,其中一个项目中有多个工作表和图形窗口;选项卡式或类似 IDE 的界面会更加不方便,需要大量来回切换。
在mac上,一个应用程序有多个顶级窗口来解决这个问题很自然也很方便,如果不使用MDI,Windows中的首选方式是什么?
MDI的缺点如下:
它通常需要用户学习和理解一组更复杂的窗口关系。
许多简单的操作可能需要一个两步过程。例如,将所需窗口置于前台可能需要用户首先将容器窗口向前移动,然后将容器窗口中的右主窗口向前移动。调整窗口大小或最大化窗口可能意味着首先调整容器窗口,然后调整其中的主窗口。
如果打开了多个容器窗口,用户可能会忘记哪个具有所需的主窗口,从而需要进行繁琐的搜索。
用户很容易被最大化、图标化、分层和关闭窗口的双重方式所迷惑。例如,他们可能会关闭整个应用程序而不是容器窗口中的一个窗口。或者他们可能会“丢失”一个窗口,因为他们在容器窗口中将其图标化而没有意识到。
用户在他或她的窗口可以呈现的大小和位置方面受到限制。假设我想同时查看一个应用程序的 3 个窗口和另一个应用程序的 1 个窗口。使用 SDI,我可以让每个窗口占据屏幕的一个象限,但我不能使用 MDI 做到这一点。如果我希望 MDI 中的一个窗口大而另一个窗口小怎么办?我必须使容器窗口变大以容纳大窗口(它遮挡了其他应用程序的窗口),但是在看 child 时会浪费空间。
请注意,所有这些缺点也适用于选项卡式文档界面 (TDI),选项卡式界面还有一个额外的缺点,即用户无法并排查看同一容器窗口中的两个文档。选项卡还会增加困惑并消耗窗口中的空间。但是,总体而言,TDI 的问题往往不如 MDI,因此它们可能更适合特殊情况(请继续阅读)
综上所述,很难想到任何情况下使用 MDI。它并不比 SDI 好,同时增加了更多的复杂性和导航开销,并且与其他应用程序的窗口配合不佳。
应用程序没有理由不能有多个顶级 SDI 窗口。即使使用像 Origin 这样的应用程序,只要项目在每个窗口中都得到了很好的识别,我也看不到将项目分布在多个 SDI 窗口中的问题。 SDI 还允许不同类型的窗口(例如,图形与工作表)具有不同的菜单和工具栏,而不是根据事件窗口隐藏或禁用项目(前者令人困惑,后者浪费空间)。
SDI 为您的用户提供了比 MDI 或 TDI 更大的灵活性。用户可以重叠或最大化窗口,并将任务栏/停靠栏用作事实上的选项卡界面。用户可以选择调整窗口大小和重新定位窗口,以便他们可以同时查看多个窗口。每个窗口都可以独立调整大小以优化屏幕空间。无论 MDI 或 TDI 可能有什么优势,您都可以增强 SDI 以使其也具有这些优势(例如,提供一个缩略图菜单,使窗口之间的切换比使用任务栏更快,类似于选择选项卡,或提供一个图标化所有一键打开应用程序窗口)。
除非您有令人信服的理由使用 TDI,否则请使用 SDI 以实现这种灵活性。令人信服的原因包括以下部分:
每个选项卡用于不相关的高阶任务,用户不会频繁地在选项卡之间切换或跨选项卡比较信息。
您正在与非常低端的用户合作,他们对任务栏/停靠栏和多个窗口一无所知或感到困惑,并且不知道如何调整窗口大小(对于此类用户来说,引人注目的选项卡图像似乎比任务栏更有效)。
您预计通常会有大量选项卡(例如,4 个或更多),并且您可以比操作系统更有效地控制它们的显示,如果它们是任务栏/停靠栏上的 SDI 窗口(例如,关于订单和标签)。
使用 SDI,您会遇到用户将非事件窗口的工具栏或调色板与事件窗口混淆的问题。
选项卡数量固定并永久打开(例如,当每个选项卡是同一数据对象的不同组件时)。用户不必试图区分关闭选项卡和关闭整个窗口;找出要导航到的窗口不是问题,因为所有窗口都具有相同的选项卡。
实际上只有一种方法可以正确安排任务数据,用户之间或他们实际使用应用程序的目的没有变化。您不妨使用选项卡和主从 Pane 的组合为用户设置它,而不是依赖用户来正确排列和调整 SDI 窗口的大小。
综上所述,考虑到您的用户能力、应用复杂性和任务结构,如果您的应用可以比用户/操作系统更好地管理内容显示,请使用 TDI,否则使用 SDI。
我是一名优秀的程序员,十分优秀!