MDI の欠点は次のとおりです。
一般に、ユーザーはより複雑なウィンドウ関係のセットを学習して理解する必要があります。
多くの単純なアクションには、2 段階のプロセスが必要になる場合があります。たとえば、目的のウィンドウを前面に移動するには、ユーザーが最初にコンテナー ウィンドウを前面に移動してから、コンテナー ウィンドウ内の右側のプライマリ ウィンドウを前面に移動する必要があります。ウィンドウのサイズ変更または最大化は、最初にコンテナー ウィンドウを調整してから、その中のプライマリ ウィンドウを調整することを意味します。
複数のコンテナ ウィンドウが開いている場合、ユーザーは目的のプライマリ ウィンドウがどのウィンドウにあるかを忘れてしまい、面倒な検索が必要になります。
ユーザーは、ウィンドウを最大化、アイコン化、レイヤー化、および閉じるための 2 つの方法に簡単に混乱します。たとえば、コンテナー ウィンドウ内のウィンドウではなく、アプリ全体を閉じる場合があります。または、ウィンドウをコンテナー ウィンドウ内でアイコン化したために、気付かずにウィンドウを「失う」可能性があります。
ユーザーが使用できるウィンドウのサイズと位置は限られています。あるアプリの 3 つのウィンドウと別のアプリの 1 つのウィンドウを同時に見たいとします。SDI では、各ウィンドウに画面の 4 分の 1 を占めるようにできますが、MDI ではそれができません。MDI の 1 つのウィンドウを大きく、もう 1 つのウィンドウを小さくしたい場合はどうすればよいですか? 大きなウィンドウ (他のアプリのウィンドウを遮る場所) に対応するためにコンテナー ウィンドウを大きくする必要がありますが、子を見るとスペースが無駄になります。
これらの欠点はすべて、タブ付きドキュメント インターフェイス (TDI) にも当てはまることに注意してください。タブ付きインターフェイスには、ユーザーが同じコンテナー ウィンドウ内の 2 つのドキュメントを並べて表示できないという追加の欠点があります。また、タブは煩雑さを増し、ウィンドウのスペースを消費します。ただし、全体的な TDI は MDI よりも問題が少ない傾向があるため、特殊なケースでは好まれる可能性があります (続きを読む)。
要約すると、MDI を使用する状況を考えるのは困難です。SDI に勝るものはありませんが、複雑さとナビゲーションのオーバーヘッドが追加され、他のアプリのウィンドウとの連携が不十分です。
アプリが複数の最上位 SDI ウィンドウを持つことができない理由はありません。Origin のようなアプリでも、プロジェクトが各ウィンドウで適切に識別されている限り、プロジェクトが複数の SDI ウィンドウにまたがっても問題はないと思います。SDI では、アクティブなウィンドウに応じて項目を非表示にしたり無効にしたりするのではなく、さまざまな種類のウィンドウ (グラフとワークシートなど) にさまざまなメニューとツールバーを持たせることもできます (前者はわかりにくく、後者はスペースを浪費します)。
SDI は、MDI または TDI よりも柔軟性をユーザーに提供します。ユーザーは、ウィンドウをオーバーラップまたは最大化し、タスクバー/ドックを事実上のタブ インターフェイスとして使用できます。ユーザーは、複数のウィンドウを同時に表示できるように、ウィンドウのサイズと位置を変更することもできます。画面スペースを最適化するために、各ウィンドウのサイズを個別に変更できます。MDI または TDI にどのような利点があるとしても、SDI を拡張してそれらの利点も持つことができる場合があります (たとえば、タスクバーを使用するよりもウィンドウ間の切り替えが速く、タブの選択に匹敵するサムネイル メニューを提供したり、すべてをアイコン化するコントロールを提供したりすることができます)。ワンクリックでアプリのウィンドウ)。
TDI を使用するやむを得ない理由がない限り、SDI を使用してこの柔軟性を確保してください。説得力のある理由には、次のサブセットが含まれます。
各タブは無関係な上位タスクに使用され、ユーザーはタブを頻繁に切り替えたり、タブ間で情報を比較したりすることはありません。
タスクバー/ドックと複数のウィンドウを知らないか混乱しており、ウィンドウのサイズを変更する方法がわからない非常にローエンドのユーザーと作業しています (そのようなユーザーにとっては、魅力的なタブ画像がタスクバーよりもうまく機能するようです)。
通常、多数のタブ セット (例: 4 つ以上) があり、それらがタスク バー/ドック上の SDI ウィンドウ (例:注文とラベリングに関して)。
SDI では、アクティブでないウィンドウのツールバーやパレットをユーザーがアクティブなウィンドウと混同するという問題があります。
タブの数は固定されており、永続的に開いています (たとえば、各タブが同じデータ オブジェクトの異なるコンポーネントである場合)。ユーザーは、タブを閉じることとウィンドウ全体を閉じることを区別しようとすることに悩まされることはありません。すべてのウィンドウに同じタブがあるため、ナビゲートするウィンドウを見つけることは問題ではありません。
タスクに合わせてデータを適切に配置する方法は 1 つしかなく、ユーザー間やユーザーが実際にアプリを使用する目的に違いはありません。SDI ウィンドウの適切な配置とサイズ設定をユーザーに任せるのではなく、タブとマスター/詳細ペインを組み合わせてユーザー向けに設定することもできます。
要約すると、ユーザーの能力、アプリの複雑さ、およびタスク構造を考慮して、アプリがコンテンツ表示をユーザー/OS よりも適切に管理できる場合は TDI を使用し、それ以外の場合は SDI を使用します。