時系列に着目する:シーケンス

オブジェクト指向の感覚が身に付くまでは、時系列(シーケンス)に沿って、伝統的なアプローチを試してみるのも一興です。


この図を見ながら、作業手順に沿って、断片的な理解から始めてもよいでしょう。
1)任意の項目を選択する:ある操作をしてイベントが発生すると、対応するアクションを起動します。ここでは、選択した項目が変化すると(フレームワークで規定されたプロトコルに従って)メソッド valueChanged が呼び出されます。
2)プロトコルに従って作業を依頼する権利:要求されたサービスを提供するために、役割分担された(相互作用が可能な)オブジェクト群には、作業目的(what)だけを伝えます。このとき、具体的な作業手順(how)を指示する必要はありません。それは担当者だけが知っていればいいので、管理者は(不要な介入しないで)結果を検証するだけです。ここでは、相互の信頼関係だけが頼りです。プロトコルに違反しないなら、そこから先は担当者の裁量に委ねます。このとき、担当者には、依頼された作業がプロトコルに違反していないことを主張する「権利」が保証されています。何をするかは情報隠蔽されているので、たとえ管理者でも、カプセル内に許可なく立ち入るのは御法度です。
3-5)プロトコルに従って作業を遂行する義務:要求されたサービスを提供するために、役割分担された(相互作用が不要な)各オブジェクトは、課せられた責務だけを遂行します。ときには、責務(事後条件)を果たすために、不足する情報(事前条件)を求めることも可能です。ただし、その依頼は管理者を介して行う必要があります。さもないと、開発チームの秩序が乱れます。個人プレーに頼ることなく、チームプレーに対する貢献度によって、各オブジェクトの是非が評価されます。


《Tips》すべては、以前だれかが考えたことである。難しいのは、それを思い出すことだオブジェクト指向のルーツは古く、キリスト生誕以前にまで遡れます。しかし、その思考法(概念フレーム)をソフトウェア開発に適用した歴史はまだ浅く、30 余年の実績しかありません。紹介したプロトコルフレームワークは、ソフトウェア開発だけに限定されません。たとえば、オンラインショッピングのビジネスモデルを構築するときにも、同じフレームワークを適用できます。注文から配達まで、一連の作業の流れや、複数の業者に託した役割分担には、ここで紹介したパターンと同じ香りがします。あるパターンを「クラス」と見なすなら、ソフトウェア開発もビジネスモデルの構築も、それを適用して具体化した「インスタンス」と見なせます。同じことを、ギリシャ時代の哲学者たちも考えたわけです。デザインパターンに限らず、そのルーツ(古典)を探る旅の中から、その技巧だけでなく、その本質を盗んでください。♪ひよ子 □


《ひよ子のきもち♪2007/05/23》