先ほど、デシジョンツリーとデシジョンテーブルについて学びました。デシジョンテーブルは、条件付きのIf-Then-Elseステートメントに役立つと思います。特に、デシジョンテーブルには副作用がないと思います。たとえば、もう1つ「elseif」ステートメントが必要であることに気づかなかった場合などです。
しかし、どうすればそれを実装できるかわかりません。配列?データベーステーブル?最近では、コードでデシジョンテーブルを使用している人もいますか?
先ほど、デシジョンツリーとデシジョンテーブルについて学びました。デシジョンテーブルは、条件付きのIf-Then-Elseステートメントに役立つと思います。特に、デシジョンテーブルには副作用がないと思います。たとえば、もう1つ「elseif」ステートメントが必要であることに気づかなかった場合などです。
しかし、どうすればそれを実装できるかわかりません。配列?データベーステーブル?最近では、コードでデシジョンテーブルを使用している人もいますか?
CodeCompleteの第18章を強くお勧めします。
この投稿を確認することもできますテーブル駆動型メソッドとは
マルチプラットフォームの CCIDE-0.5.0-6 (またはそれ以降) は、SourceForge および Github で入手できます。
http://twysf.users.sourceforge.net/の Web ページを参照してください。
まあ、私は自分の研究をしました:S
だから、私はまだ探しています。どなたか良い回答がありましたらご記入ください。
テーブル駆動方式では、if-then ステートメントの代わりにデータ構造を使用してプログラム ロジックを駆動します。たとえば、2 種類のレコード (テレビとケーブル) を処理している場合は、次のようにします。
hash[tv] = processTvRecords
ハッシュ[ケーブル] = processCableRecords
Ruby や Perl などの一部の言語では、この手法は簡単です。Java では、リフレクションを使用してメソッド ハンドルを見つける必要があります。
デシジョン テーブルについて知りたい場合は、http://fitnesse.org/ で Fitnesse テスト フレームワークを調べてください。
私が見たデシジョン テーブルの最も優れた実装は、http: //www.econ.kuleuven.be/prologa からダウンロードできる Prologa というアプリケーションです。残念ながら、これは Windows でのみ利用可能であり、評価キーを待つ間、少し時間がかかることがあります。
このソフトウェアは、非バイナリの条件を処理し、同様のルールを折りたたむことができ、テーブルが現在カバーしている組み合わせの数を実際に追跡するため、特に大きなテーブルの完全性チェックに最適です. また、ネストされたテーブルを適切に処理します (1 つのテーブルの結果が別のテーブルの条件になる場合があります)。