免責事項: この一連のブログの参考資料は、Cheng Jie 著の「Dahua Design Pattern」です。
インタープリター モード: 指定された言語で、その文法の表現と、その言語の文を解釈するためにその表現を使用するインタープリターを定義します。言語を指定して、その文法の表現を定義し、その表現を使用して言語の文を解釈するインタプリタを定義します。
‐ ‐ ‐ ‑ ‑ ‑ ‑‑
最も重要なツール重要な利点は、その拡張性です。文法規則を変更するには、対応する非終端式を変更するだけで済みます。文法を拡張する場合は、非終端クラスを追加するだけで済みます。
メンテナンスには多くのトラブルが伴います。
それぞれの非終端式は、それ自体に関連する式のみを考慮し、最終結果を知る必要があり、それが何であっても、レイヤーごとにコクーンを剥がす必要があります。プロセス指向言語でもオブジェクト指向言語でも、必要な条件下では再帰が使用されるため、デバッグが非常に煩雑になります。考えてみてください。構文エラーのトラブルシューティングを行う場合、最小の構文単位に至るまでブレークポイントを 1 つずつデバッグする必要があるでしょうか。
効率の問題
インタプリタモードは大量のループと再帰を使用するため、特に複雑で長い文法の解析に使用する場合、効率は無視できない問題です。 sitalliable該当するシナリオ:
1.インタープリターモードは、繰り返しの問題に使用できます。 。この場合、問題を完全に解決できる手順があります。
2. 簡単な文法に説明が必要なシナリオ
なぜ簡単なのでしょうか?文法規則が増えるほど複雑さが増し、クラス間の再帰呼び出しも発生しますが、これは一般的には複雑ではありません。考えてみてください。複数のクラス間の呼び出しに関する問題をトラブルシューティングするには、どのような忍耐と自信が必要ですか。そのため、SQL 構文解析など、比較的標準的な文字セットの解析にはインタープリタ モードが一般的に使用されますが、この部分は徐々に専用ツールに置き換えられています。
私のビデオコースをフォローしていただきありがとうございます。アドレスは次のとおりです、ありがとうございます。
PHP オブジェクト指向デザインパターン