[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[jfriends] Re: Design Patternの普及度 は?




高橋です。

うめださん:
>そういう事です。以前、客先に納品した際にコードの可読性が悪いと言われた事があ
>ったんです(笑) 設計書ではデザインパターンの詳細使用について
>述べていなかったのでこちらに非があるんですが。。。(笑)
>その事をふと思い出して、どの程度まで一般的には使われているのかな?
>と思ったわけです。逆に例えば外注さんに仕事を出す時にそのような注文を
>出すのかな?と思ったわけです。
デザインパターンは、コードを書いている段階ではなく、もっと早い設計段階で
適用を考えていくので、クラス図とかの世界(UMLな世界)で主に語られるのでは
ないかと考えます。
すると、小薮さんの
>オブジェクト指向にまじめに取り組んでいるところは大抵やっている
>のではないかと思います。そういう人たちの文脈では、デザインパターンの
>使用は前提、あるいは当然のこととして語られているようですので。
という話しにつながっていくんでしょうね。

「ソフトウェアアーキテクチャ 〜ソフトウェア開発のためのパターン体系」
原題:Pattern-Oriented Software Architecture - A System of Patterns
トッパン刊 \4,600+tax
では、パターンを3つのカテゴリ
・アーキテクチャパターン
・デザインパターン
・イディオム
に分けて説明しています。

それぞれの説明を引用すると
「アーキテクチャパターンは、ソフトウェアシステムの基礎的な構造組織化
スキーマを表現するものである。アーキテクチャパターンによって、あらか
じめ定義されているサブシステムの集合が与えられ、その責務が決定される。
パターンには、サブシステム間の関係を組織化するルールとガイドラインが
含まれる。」
「デザインパターンは、ソフトウェアシステムのサブシステムやコンポーネ
ント、および、それらの間の関係を洗練するスキーマを提供するものである。
これは通信し合うコンポーネント群からなる構造として記述され、通常、あ
る前提における一般的な設計課題を解決するために繰り返し現れる構造で
ある。」
「イディオムは、1つのプログラミング言語に特化した抽象度の低いパターン
であり、コンポーネントとコンポーネント間の関係を、ある言語で実装する
方法を表現する。」

アーキテクチャパターンとして分類しているパターンは、
Layers, Pipe and Filters, Blackboard, Broker, Model-View-Controller,
Presentation-Abstraction-Control, Microkernel, Reflection
デザインパターンとして分類しているものは、
Whole-Part, Master-Slave, Proxy, Command Processor, View Handler,
Forwarder-Receiber, Client-Dispatcher-Server, Publish-Subscriber
イディオムの例として
Counted Pointer
が紹介されています。

ちなみにこの本でパターンを記述する中で、問題を解決するときに考慮すべき
様相を”フォース(force)”という用語で表現しています。
フォースの例:ソフトウェアの変更が容易なこと
#フォースの暗黒面とはなんだろう(^^)
# 一見動いていればよいこと





------
Toru Takahashi
torutk@xxxxxxxxxx
NIFTY: GHE00470
http://www.alles.or.jp/~torutk/