人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

javaのAWTやSWTがどのような実装によってマルチプラットフォームを実現しているのか教えてください。

このような実装を行うには、Abstract Factoryパターンを使うのが良いとデザインパターンの本には書かれていますが、AWTやSWTのサンプルコードを見る限り、ファクトリーメソッドを呼び出して、オブジェクトを取得する様子が見受けられません。また、Abstract Factoryパターンの有用性について知りたいのですが、これが実際に使われているjavaのライブラリがあれば、教えてください。

●質問者: witt
●カテゴリ:コンピュータ
✍キーワード:Abstract Factory Java SWT オブジェクト
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● hanadix
●35ポイント

AWTについては、実際のプラットフォーム依存の処理する部分は JVM にあります。JVM はプラットフォームごとに違うものをインストールしますよね。

SWTについては、SWTのネイティブライブラリというものを各プラットフォーム別にインストールする必要があり、ここにプラットフォーム依存の処理があります。

つまり、プラットフォーム依存のコードがないのは、そういうコードを書かなくてもよいよう JVM およびライブラリ側で考慮しているから、という結論になります。

http://d.hatena.ne.jp/ksh/

◎質問者からの返答

ありがとうございます。納得しました。

質問後、再考してみたのですが、AWTやSWTにAbstract Factoryパターンを

適用する必要はないと思いました。実装を切り替える必要がないのですから。

このパターンを適用するなら、swingになろうかと思います。

そう思って、サンプルコードを見ると、そんな感じになってました。


2 ● b-wind
●35ポイント

Abstract Factoryパターンについてのみですが、DOM のオブジェクト生成時などに使われています。

http://www.hellohiro.com/xmldom.htm

システムプロパティの変更等により、実際に使用される実装が切り替わるようになっています。

◎質問者からの返答

DOMみたいなテキスト処理をするライブラリはPure Javaで書いた

1つの実装さえあれば、それで事足りるような気がしたんですが、

実際には複数の実装があるのですね。

http://www.atmarkit.co.jp/fxml/rensai/xmljava01/xmljava03.html

そこで、Abstract Factoryパターンを使う、と。なるほど。

ありがとうございました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ