MDI的缺點如下:
它通常需要用戶學習和了解一個更復雜的一組窗口的關係。
許多簡單的操作可能需要兩個步驟的過程。例如,將所需的窗口置於前臺可能需要用戶首先將容器窗口向前移動,然後將容器窗口中正確的主窗口向前移動。調整窗口大小或最大化可能意味着首先調整容器窗口,然後調整其中的主窗口。
如果打開了多個容器窗口,用戶可以忘記哪個窗口具有所需的主窗口,需要進行繁瑣的搜索。
用戶很容易被最大化,圖標化,圖層和關閉窗口的雙重方式所迷惑。例如,他們可能會關閉整個應用程序,而不是關閉容器窗口中的窗口。或者他們可能會「失去」一個窗口,因爲他們在容器窗口內將其圖標化而沒有意識到它。
用戶在他或她的窗戶可以承擔的大小和位置上受到限制。假設我想同時查看一個應用的3個窗口和另一個應用的1個窗口。使用SDI,我可以讓每個窗口占據屏幕的一個象限,但是我不能用MDI來做到這一點。如果我想讓MDI中的一個窗口變大而另一個窗口變小,該怎麼辦?我必須將容器窗口放大以容納大窗口(它遮擋了其他應用程序的窗口),但是在看着孩子時會浪費空間。
注意,所有這些缺點適用於選項卡式文檔界面(TDI)也與具有另外的缺點是,用戶無法通過側看兩個文件在同一容器中的窗口一側的標籤式界面。選項卡還會增加混亂並在您的窗口中佔用不動產。然而,整體TDI往往不如MDI更成問題,所以它們可能是特殊情況下的首選(繼續閱讀)
總之,很難想象使用MDI的情況。它不如SDI好,但增加了更多的複雜性和導航開銷,並且與其他應用程序的窗口效果不佳。
沒有理由一個應用程序不能有多個頂級SDI窗口。即使有像Origin這樣的應用程序,只要在每個窗口中都能很好地識別項目,我就不會發現跨多個SDI窗口傳播項目的問題。 SDI還允許不同類型的窗口(例如圖形vs工作表)具有不同的菜單和工具欄,而不是根據活動窗口隱藏或禁用項目(前者令人困惑,後者浪費空間)。
SDI爲您的用戶提供了MDI或TDI更多的靈活性。用戶可以重疊或最大化窗口,並將任務欄/擴展塢用作事實上的選項卡界面。用戶也可以調整窗口大小並重新定位,以便他們可以一次查看多個窗口。每個窗口可以獨立調整大小以優化屏幕空間。無論MDI或TDI可能具有哪些優點,您可能可以擴充SDI以獲得這些優勢(例如,提供縮略圖菜單,可以在窗口之間切換,比使用任務欄更快,並且與選擇選項卡相媲美,或者提供一個可以圖標化所有控件的控件點擊一個應用程序的窗口)。
除非您有令人信服的理由使用TDI,否則請轉到SDI以實現這種靈活性。令人信服的理由包括以下的某個子集:
每個標籤被用於不相關的高階任務,用戶將不能在標籤間的切換或頻繁的標籤之間進行比較的信息。
您正在與非常低端的用戶混淆,這些用戶對任務欄/停靠欄和多個窗口無知或困惑,並且不知道如何調整窗口大小(看起來引人注目的標籤圖像比任務欄更好地工作對於這樣的用戶)。
您預計通常會有大量的選項卡(例如,4個或更多),並且您可以以比操作系統可以更有效地控制其顯示的方式,如果它們是任務欄上的SDI窗口/碼頭(例如,關於訂單和標籤)。
使用SDI時,用戶遇到問題時,用戶將活動窗口的工具欄或不活動窗口的調色板混淆。
選項卡的數量是固定的並且永久打開(例如,每個選項卡是同一數據對象的不同組件時)。用戶不會試圖區分關閉標籤和關閉整個窗口;找出導航窗口並不是問題,因爲所有的窗口都有相同的標籤。
確實只有一種方法來正確安排任務的數據,用戶之間沒有任何變化或者他們實際使用應用程序的方式。您還可以通過組合標籤和主細節窗格爲用戶進行設置,而不是依賴用戶來安排和調整SDI窗口的大小。
綜上所述,考慮到用戶的能力,應用程序的複雜性和任務結構,如果您的應用程序可以管理的內容顯示比用戶/ OS,使用TDI更好,否則使用SDI。
認爲有害的MDI的第一個鏈接被破壞。固定? – 2011-09-20 19:17:33
@ChristopherMahan:鏈接現已修復。 :) – 2014-10-10 12:49:34