web-dev-qa-db-ja.com

Cのデザインパターンを利用しますか?

デザインパターンは、オブジェクト指向言語に役立ちます。

しかし、[〜#〜] c [〜#〜]のような非オブジェクト指向言語を使用するにはどうすればよいでしょうか?

5
Yousha Aleayoub

すでに与えられた答えを補強するために、GOF Design Patterns本自体からの引用:

私たちのパターンは、Smalltalk/C++レベルの言語機能を想定しており、その選択により、簡単に実装できるものと実装できないものが決まります。手続き型言語を想定した場合、「継承」、「カプセル化」、「ポリモーフィズム」と呼ばれるデザインパターンが含まれている可能性があります。

ここで説明されている設計パターンはオブジェクト指向ソフトウェアに向けられており、確かにオブジェクト指向プログラミング言語はそれに適していますが、それらが具現化する概念は言語にとらわれません。異なるのは、必要なOOP機能またはその回避策を実装するために投資する必要がある作業のオーバーヘッドです。

14
scrwtp

ウィキペディアの記事 ソフトウェア設計パターン から:

設計パターンは、ソフトウェア設計の特定のコンテキスト内で一般的に発生する問題に対する一般的な再利用可能なソリューションです。

ご覧のとおり、ここではオブジェクト指向プログラミングについての言及はありません。

デザインパターンは任意のコンピューター言語に適用され、場合によってはより高いレベル(アーキテクチャパターン)になります。

SQLの1つの例は、 SQL Design Patterns の本さえあります。

8
Oded

デザインパターンは、特定の言語や言語ファミリに限定されません。どんな言語やパラダイムでもデザインパターンを思いつくことができます。

GOFパターンを参照している場合:stdoutstderr、およびstdinin Cを見てください。これは、そうではないように見える戦略パターンですOO結局のところ。

ところで、オブジェクト指向プログラミングは言語に依存していません。一部の言語はそれを容易にし、一部は困難にしますが、「SQLなどの「特別な目的ではない」など)あらゆるユニバーサル言語で「オブジェクト指向」のプログラムを作成できます。

7
EricSchaefer