ÃÜÂ룺888 株匏䌚瀟・パヌトナヌ - adminさんの゚ントリ
 
ようこそ: Guest  さん
メむンメニュヌ
最新ニュヌス
投皿䞀芧
フォヌラム䞀芧
サブカテゎリヌ䞀芧
タグ䞀芧
最新のトラックバック
  • adminさんの最新配信
  • RSS
  • RDF
  • ATOM

䌚瀟ブログ - adminさんの゚ントリ

Observer パタヌン

カテゎリ : 
技術情報
執筆 : 
admin 2013-6-19 1:11
Observer パタヌンオブザヌバ・パタヌンずは、プログラム内のオブゞェクトの状態を芳察observeするようなプログラムで䜿われるデザむンパタヌンの䞀皮。出版-賌読型モデルずも呌ばれる。暗黙的呌び出しの原則ず関係が深い。

分散むベント凊理システムの実装に䞻に䜿われる。蚀語によっおは、このパタヌンで扱われる問題は蚀語が持぀むベント凊理構文で凊理される。リアルタむムのアプリケヌション配眮の手段ずしお興味深い機胜である。

クラス図

このパタヌンの基本は、オブザヌバたたはリスナヌず呌ばれる1぀以䞊のオブゞェクトを、サブゞェクトず呌ばれる察象オブゞェクトが発生するむベントを芳察するために登録する。むベントを発生するオブゞェクトは䞀般に耇数のオブザヌバを管理する。

以䞋に、その構造をUMLで描いたものを瀺す。

兞型的甚法

ナヌザヌが䜕らかの操䜜をするなどの倖郚むベントを埅぀。むベント駆動型プログラミング参照。
あるオブゞェクトの属性倀の倉化を埅぀。なお、耇数の属性倀の倉化でコヌルバック関数を呌び出すようにしおいるずむベントの連鎖的発生を匕き起こす。
メヌリングリストで、䜕らかのむベント新補品情報などがあったずき、賌読者リストに登録しおいる人にメッセヌゞを送る。

Observer パタヌンは Model View Controller (MVC) パラダむムの実装に䜿われるこずも倚い。MVC では、モデルずビュヌの間のルヌプに Observer パタヌンが䜿われる。通垞、モデルの倉化を匕き金ずしお、ビュヌオブザヌバにそれを通知する。
Model View Controllerモデル・ビュヌ・コントロヌラ; MVCは、コンピュヌタ内郚のデヌタをナヌザに提瀺し、それに察しおナヌザが䜕らかの指瀺を出すタむプの、独自のナヌザヌむンタフェヌスをも぀アプリケヌション゜フトりェアを、以䞋に述べるようなmodel・view・controllerの3぀の郚分に分割しお蚭蚈・実装するずいう技法、又はそのような構造をいう。

MVCは、デザむンパタヌンの1皮ず扱われる堎合もあるがMVCパタヌンず呌称される、MVC自䜓が他の小さなデザむンパタヌン(Observer パタヌン・Command パタヌン・Factory Method パタヌン・Facade パタヌンなど)を利甚しお実装されるこずが倚いずころからするず、デザむンパタヌンずいうより、さらに粒床の倧きい1皮の゜フトりェアアヌキテクチャずいう方が適圓であろう[1][2]。

各モゞュヌルが比范的截然ず分かれ、プログラムの芋通しがよくなるずずもに、ナヌザむンタフェヌス (UI) 郚分を別のモゞュヌルに取り替えるこずが容易ずなるのが利点である。自動プログラミングなどにも適しおいる。

元来Smalltalkにおけるりィンドりプログラム開発のための蚭蚈指針ずしお生たれたものであるが、特に構造が耇雑ずなりがちなグラフィカルナヌザむンタヌフェヌス (GUI) をも぀゜フトりェアにおける有甚性から他方面ぞ広がった。

MVCの構造

MVCでは、プログラムを3぀の芁玠、Modelモデル、Viewビュヌ、Controllerコントロヌラに分割する。
Model そのアプリケヌションが扱う領域のデヌタず手続きビゞネスロゞック - ショッピングの合蚈額や送料を蚈算するなどを衚珟する芁玠である。たた、デヌタの倉曎をviewに通知するのもmodelの責任であるmodelの倉曎を通知するのにObserver パタヌンが甚いられるこずもある。 倚くのアプリケヌションではデヌタの栌玍に氞続的な蚘憶の仕組みデヌタベヌスなどが䜿われおいる。MVCの抂念では、デヌタのUI以倖の入出力は取り扱わないので、デヌタアクセスも本来MVCの抂念の範疇を超えるものではあるが、敢えおいえばmodelの䞭に隠蔜されるず考えられる。 View modelのデヌタを取り出しおナヌザが芋るのに適した圢で衚瀺する芁玠である。すなわちUIぞの出力を担圓する。䟋えば、りェブアプリケヌションではHTML文曞を生成しお動的にデヌタを衚瀺するためのコヌドなどにあたる。 Controller ナヌザの入力通垞むベントずしお通知されるに察しお応答し、それを凊理する芁玠である。すなわちUIからの入力を担圓する。modelずviewに倉曎を匕き起こす堎合もあるが、盎接に描画を行ったり、modelの内郚デヌタを盎接操䜜したりはしない。
なお、UIにおける入力ず出力は本質的には䞍可分なものであり、したがっおviewずcontrollerはい぀でも分離できるずは限らない。このようなM-VCずなるような構造を拡匵MVCず呌ぶこずがある。

MVCのシナリオ

MVCの実装は様々であるが、制埡フロヌは䞀般的に次のようになる。
1.ナヌザがナヌザむンタフェヌスを通しおviewに入力するボタンを抌すなど。
2.controllerがviewからの入力むベントを凊理する。controllerは登録されおいるむベントハンドラやコヌルバックを通しお呌ばれるこずが倚い。
3.controllerがナヌザのアクションに応じおmodelのメ゜ッドを呌ぶ。その結果modelのデヌタ䟋えば、ショッピングカヌトの䞭身などが曞き換えられるこずもある[3]。
4.viewがmodelから関連するデヌタを取埗し、出力を曎新する。䟋えば、ショッピングカヌトの䞭身の衚瀺を曎新する。
5.viewがナヌザの次の操䜜を埅぀。始めに戻っお、新しいサむクルに入る。

Webテンプレヌト

カテゎリ : 
技術情報
執筆 : 
admin 2013-6-19 0:25
Webテンプレヌトは、りェブデザむンにおいおコンテンツず芋た目を分離し、Webドキュメントを倧量生産するためのツヌルである。Webテンプレヌトシステムの基本抂念である。Webデザむンテンプレヌト、ホヌムペヌゞテンプレヌトずも。

Webテンプレヌトはどんなタむプのりェブサむトでも䜿える。簡単に蚀えば、Webテンプレヌトはりェブサむト蚭定時のテンプレヌトである。

Webテンプレヌトは個人や組織がりェブサむトを構築する際に利甚できる。テンプレヌトを賌入たたはダりンロヌドするず、ナヌザヌはWebテンプレヌトに含たれるゞェネリックな情報を眮換し、その個人や組織あるいは補品に察応した内容にする。テンプレヌトは次のような堎面で䜿える。
ブログで、個人情報や日々の掻動を衚瀺する。
オンラむンでの商品販売
䌁業や団䜓に関する情報を衚瀺する。
家族の歎史を衚瀺する。
フォトギャラリヌを衚瀺する。
りェブブラりザ䞊で挔奏されるよう、MP3などの音楜ファむルを眮く。
動画ファむルを公開する。
オンラむンでのプラむベヌトなログむン領域を蚭定する。

効率的な分離

りェブ開発経隓者の共通の目暙の1぀は、柔軟か぀メンテナンスの容易なアプリケヌションを開発し広めるこずである。この目暙を達成するために考慮すべき重芁な考え方ずしお、ビゞネスロゞックずプレれンテヌションロゞックの分離がある[1]。開発者はこの分離を行うためにWebテンプレヌトシステムを䜕らかの圢で䜿う[1]。

この分離を評䟡する際の困難さずしお、その定匏化された尺床が存圚しないずいう問題がある[1]。しかし、゜フトりェア工孊の領域から借甚した暙準的ヒュヌリスティックが存圚する。䟋えば、オブゞェクト指向プログラミングの原理に基づく「継承」、MVC分離の原則に察応した「テンプレヌト゚ンゞンず自動プログラミング」がある[2]。各皮ガむドラむンの違いや、異なるガむドラむン間の類䌌性は議論の的ずなっおいる[3]。

柔軟な衚珟

「効率的な分離」の背景にある䞻芁な論理的根拠ずしお、プレれンテヌションロゞックに特化したコヌドずリ゜ヌスにおける柔軟性を最倧化する必芁性がある[2]。クラむアントの芁求、顧客の嗜奜の倉化、垞に新鮮な芋せ方をしたいずいう芁望などにより、Webコンテンツの芋せ方はしばしば劇的に倉曎する必芁があるが、その際に根底にある基盀にはなるべく圱響を䞎えないのが奜たしい。

「プレれンテヌションフロント゚ンド」ず「ビゞネスロゞック基盀」の区別は、以䞋のような理由で重芁である。
プレれンテヌションの゜ヌスコヌド蚀語は他のコヌド資産ずは違うかもしれない。
アプリケヌション補造工皋は、違った時間や堎所で行われる必芁があるかもしれない。
劎働者にはそれぞれ独自のスキルがあり、プレれンテヌションのスキルずビゞネスロゞックをコヌディングするスキルは共存するずは限らない。
コヌド資産は、異質なコンポヌネントが分離され結合床が匱いほど、管理しやすく読みやすい[2]。

再利甚可胜性

Webテンプレヌトの朜圚的利甚者の党おが、その必芁性に合ったシステムを蚭蚈する開発者を雇えるわけではない。さらに䞭には、Webを䜿いたくおも技術をほずんど持たない人もいる。そこで、耇数の開発者やベンダヌが技術を持たない人々のための再利甚可胜なWebテンプレヌトをリリヌスしおいる。もっずも、Webテンプレヌトの再利甚可胜性は高いスキルや技術を持った開発者にも重芁である。特に単玔で既補のWeb゜リュヌションを求めおいる人には重芁ず蚀える。

そのような既補のWebテンプレヌトはフリヌなものもあるし、個人が容易に䜜成できる堎合もある。しかし、特殊なWebテンプレヌトはオンラむンで販売されおいる堎合もある。ラむセンス料を城収する商甚サむトも倚数存圚するが、フリヌで「オヌプン゜ヌス」のサむトももちろん存圚する。
䌚瀟玹介
カレンダヌ
前月2019幎 12月翌月
日月火氎朚金土
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
ログむン
ナヌザヌ名:

パスワヌド:


パスワヌド玛倱

新芏登録
怜玢
サむト情報