- Overview -
Sketch のクラス構造

■ Sketch のクラス構造
ここでは Sketch で使われているクラス構造を見てみるよ。基本的に、すごく素直な MVC 構造になっているんだ。
◆ SKTDrawDocument クラス
Sketch はドキュメントベースアプリケーションの形をとっているんだ。だから Model のクラス群の親玉的存在は、SKTDrawDocument クラスだ。NSDocument を継承しているこのクラスを中心に扱うことになる。

◆ SKTGraphic クラス
で、実際に画面に描かれるオブジェクト達に対応するクラスは、SKTGraphic から継承されるクラスだ。四角や、円などのグラフィックオグジェクトは、この SKTGraphic から継承されることになるんだ。これらのクラスを生成して、変型することがアプリケーションで行う作業の中心となるんだ。
SKTGraphic から継承されているクラスはたくさんある。まず SKTRectangle、SKTCircle、SKTLine、SKTTextArea のクラス群。これらはツールバーに対応するツールがあるよね。あと、SKTImage というクラスもある。これは .tiff などの画像に対応するクラスだ。実は Sketch に画像をドラッグすると張り付けることができたりするんだけど、それはこのクラスのおかげなんだ。

◆ .nib と WindowController クラス
Sketch で使われる各ウィンドウは、.nib ファイルで定義されているんだ。それぞれの .nib は、 NSWindowController クラスから継承された、コントローラを持つことになるんだ。
.nib ファイルの名前は、DrawWindow.nib、Inspector.nib、ToolPalette.nib、GridPanel.nib っていう感じだ。それに対応した WindowController クラスは SKTDrawWindowController、SKTDrawInspectorController、SKTInspectorController、SKTToolPanellteController だ。もー、そのまんまだ。

◆ View クラス
NSView から派生したクラスもある。SKTGraphicView は、DrawWindow 上にある View で、グラフィックオブジェクトの描画とイベント受付をやる。Sketch の中心となるクラスの 1 つだね。SKTGridView は、GridPanel でグリッドのサンプルを表示する View だ。

◆ Application Delegate クラス
あと AppDelegate がある。SKTDrawAppDelegate クラスがこのアプリケーションの delegate になるんだ。

■ Sketch のクラスの全体図
じゃ、上記のクラス図をもとにして、全体図を描いてみる。

中心となるのは NSApplication。こいつをカスタマイズするために SKTDrawAppDelegate が使われる。Sketch はドキュメントベースアプリケーションになっているので、ドキュメントの保存とかは SKTDrawDocument を中心に処理されるんだ。
SKTDrawDocument はその主な構成要素として、SKTGraphic から派生されるグラフィッックオブジェクトを持つ。この Document を表示するための WindowController は SKTDrawWindowController だ。このWindowController が管理するウィンドウには SKTGraphicView があるんだ。
Document とは別に、いくつかのウィンドウが使われる。それらを制御するのが、SKTInspectorController、SKTToolPaletteController、SKTGridPanelController だ。SKTGridPanelController は、SKTGridView を使う。
ってところか。
|