26

「元に戻す/やり直しアルゴリズム」を検索したところ、重複としてマークされたものを見つけましたが、その重複は「元に戻すデザイン パターン」の要求でした。このためのアルゴリズムが本当に欲しいです。必ずしもデザインパターンが必要だとは思いません。

「デザインパターン」と「アルゴリズム」の間に根本的な違いはありますか、それとも誰かがこの 2 つを同じ意味で使用しても問題ありませんか?

私は電話を切り、私の答えを放送から外します。

わかりました。デザイン パターンはアルゴリズムの単なる抽象化であると考えていたことをお許しください。これは、すべて非常に優れた回答からの私の調査結果の小さな表です。

   デザインパターン | アルゴリズム
------------------|----------------
アブストラクト | コンクリート
制御構造 | アクションのセット    
テンプレート | 実装
フレキシブル | 決定論的
設計図 | レシピ
4

12 に答える 12

29

アルゴリズムはレシピのようなもので、アクティビティを実行するための段階的なプロセスです。

デザイン パターンは設計図のようなものです。つまり、ある目標を達成するためのオブジェクト、関連付け、およびアクションの構造化されたコレクションです。

于 2009-02-17T20:54:06.710 に答える
2

アルゴリズムは、すべての状況または状態の変化にわたって指定された順序/方法で機能する一連のステップ/アクション/コマンド/命令です。元に戻す/やり直しの場合、各接合点で以前の状態を保存し、コマンドで (アプリが持つ手段を問わず) 再現する必要があります。しかし、この定義は非常にあいまいで、特定のケースはそれぞれ異なるため、特定のアプリの機能をプラグインできる、より一般化されたデザイン パターンを作成したいと考えています。

ソフトウェア エンジニアリングでは、設計パターンは、ソフトウェア設計でよく発生する問題に対する一般的な反復可能なソリューションです。デザイン パターンは、コードに直接変換できる完成したデザインではありません。これは、さまざまな状況で使用できる問題の解決方法の説明またはテンプレートです。--ソースメイキング

Christopher Alexander は、建物やコミュニティのパターンを最初に研究し、それらを生成するための「パターン言語」を開発した建築家です。

各パターンは、私たちの環境で何度も発生する問題を説明し、その問題の解決策の核心を説明します。これにより、同じ方法を 2 回実行することなく、この解決策を 100 万回使用できます。 . --クリストファー・アレクサンダー

したがって、これらの用語は異なるレベルの設計を指すため、交換可能ではありません。

于 2009-02-17T21:40:21.140 に答える
1

それらは異なります:http://en.wikipedia.org/wiki/Design_pattern_ ( computer_science)とhttp://en.wikipedia.org/wiki/Algorithm

コマンドデザインパターン(http://en.wikipedia.org/wiki/Command_pattern)を使用すると、undo / redoを簡単に実装できます:http ://www.cs.mcgill.ca/~hv/classes/CS400/ 01.hchen/doc/command/command.html

関連する質問:UndoEngineのデザインパターン

于 2009-02-17T21:05:38.710 に答える
1

初めてデザインパターンの概念を勉強したとき、なぜデザインパターンがアルゴリズムの存在下で導入されたのかにも驚きました。私の知識は設計パターンで増加しているため、アルゴリズムは問題を解決するためのまったく異なるアプローチであり、設計パターンは異なることに到達しています。

アルゴリズムは問題を解決するための段階的な指示であるため、設計パターンは基本的に、アルゴリズムとは関係のない特定のコンテキストでのソフトウェアアプリケーションの同じ問題の繰り返しの解決策です。

于 2012-08-21T15:55:02.803 に答える
0

デザインパターン:

  • 一般的だが一般的な問題の解決策。
  • 一般的な問題の一般的な解決策.
  • 多くの場合、使用するたびに実装する必要があります。

アルゴリズム:

  • 特定の問題を解決するために従うことができる特定の一連の手順。
  • 特定の問題を解決するために直接実装されます。
于 2016-10-22T03:31:48.670 に答える
0

設計パターンは、アルゴリズムをどのように設計するかを決定します (または、アルゴリズムとは何の関係もないかもしれませんが、アルゴリズムとは何の関係もないとしましょう)。一方、アルゴリズムは、実行するための確実で反復可能で実装可能な一連のステップになります。なにか。いいえ、私はそれらを交換可能とは呼びません。

于 2009-02-17T20:53:41.610 に答える