3ループフレームワーク2010/09/30 15:00

プログラムを作る時に、「デザインパターン」を利用する場合があります。
今回は、良くできたデザインパターンのテンプレートがあったので紹介します。
デザインパターンとは、プログラムの構造として良く利用されている定石です。
これは、LabVIEWに限ったものではなく、他の言語、CやJavaでも良く用いられています。

LabVIEWでも、デザインパターンは重要で、NIの講習会でも代表的なパターンが紹介されます。
良く耳にするパターンは、「ステートマシン」や「生産者消費者」でしょう。
この2つを押さえておけば、8割くらいのアプリケーションに対応できるでしょう。
さらに複雑なパターンもあり、その一つがここで紹介されている3ループのパターンです。
メリットとしては、処理タイミングの分離ができる、メンテナンスの容易さ、拡張の容易さなどがあります。
このパターンを利用すれば、速度の速い処理を実行中でもユーザの操作に対応できます。
機能を追加する場合にも、システマティックに対応できるのでグループでの開発に適しています。

このテンプレートでは、イベント処理のループ、メインステートマシンループ、データ収録ループの3つのループから構成されていいます。
イベント処理のループでは、ユーザの操作をイベントストラクチャで受け取り適切な処理を他のループに指示します。
指示を出すのに"キュー"が利用されています。
ほとんどの処理は、メインステートマシンループで実行されます。
ただし、データを収録する処理だけは、データ収録ループで行うので、タイミングが分離されます。
仮にメインループで重たい処理が動いても、データ収録のタイミングに悪影響を与えないための工夫です。
このサンプルでは、エラー処理や、コメントも丁寧に付けられているので利用しやすくなっています。

とは言っても、ほとんどのアプリケーションでは、ここまでの仕組みは必要ないでしょう。
私の会社でも、7種類のデザインパターンをテンプレートとして整備して使い分けていますが、
実際利用するのは、3種類程度で、中には一回も活用されていなものもあります。
といっても、テンプレートが無い状態からスタートするよりは格段に効率が良いのは確かです。
機会があれば、簡単なデザインパターン紹介もしたいと思います。

詳細は、下記をご覧ください。

3ループフレームワーク

コメント

コメントをどうぞ

※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。

※なお、送られたコメントはブログの管理者が確認するまで公開されません。

名前:
メールアドレス:
URL:
コメント:

トラックバック

このエントリのトラックバックURL: http://syoujyou.asablo.jp/blog/2010/09/30/5378556/tb

※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。