プログラミングvsオブジェクト指向プログラミング[定休日]
-
21-09-2019 - |
質問
していればOOグのようにしてお待ち申し上げており学習機能言語です。私の質問:
- どのような場合に選択プログラミング過オブジェクト指向?
- その典型的な問題の定義がプログラミングができます。
解決
どのような場合に選択プログラミング過オブジェクト指向?
き先の異なる種類のソフトウェアを進化させ:
オブジェクト指向言語が良いときには、固定セット 業務 月 いもの, としてコード化し、主として追加でとうございます。これにより新規追加を実装するクラスの既存の方法では、既存のクラスの左です。
機能言語が良いときには、固定セット いもの, としてコード化し、主として新規追加 業務 既存物です。ここで新たに機能を付加する計算すると、既存のデータ型は、既存の機能を左ます。
が進化せずにはいられないってしまったことは、問題:
新しい操作オブジェクト指向プログラムが必要ですの編集に多くのクラス定義を追加する新しい方法を開発した。
を追加するようなことがいえるでしょう機能プログラムが必要ですの編集に多くの機能を定義を追加。
この問題ることを明らかに多くの年1998年 フィルWadler吹き替えでの"表現の問題".一部の研究者と考え、表現の問題をもって対応できな言語機能としてmixins、広く受け入れられ溶ていないのが主流になっています。
その典型的な問題の定義がプログラミングができます。
機能言語excel操作の象徴的なデータをツリー形式です。大好きなの例では、コンパイラ、ソースとの中間言語の変更をほと(ほぼ同じ いものがコンパイラの作成者は常に新しい翻訳やコードの改善や最適化(新たな事業をい?編集-翻訳より一般的には"キラーアプリ"機能ます。
他のヒント
いどちらかを選択する二つのパラダイムに書き込みソフトウェアとOO建築用多機能な概念です。 FPとOOPは直交然.
例えば、C#.といえるのかもしれませんでOOPがあるのでFPの概念を構築します.一度中をご覧頂ければその Linq, 最も重要な構築を許可するLinq toが存在している機能的性質 ラムダ仕様の表現.
他の例では、F#.といえるのかもしれませんのFPがあり、多くのOOP概念を構築します。を定義することができクラスの抽象クラス、インターフェイスに対応します。も利用できます可変性を行う場合にはコードが明ができない場合には、これが飛躍的に増えます。
多くの現代語-現代の利用を想定している。
おすすめの読み
私は、チOOPを背景に、学習FP),めることをお勧めしたい一読んでね。
プログラミングのための毎日。純開発, に、ジェレミーメンバーをサポートしています。大記事が低形式)を示す多くの技術を用いて実世界の事例FP C#.
現実世界のプログラミング, により、トーマス-Petricek.大好きで、良い本が主FP概念というか、使用すること。事例は枚挙に暇がありませんの両方F#C#.また、 Petricekのブログ は多くの情報を発信して行きます。
オブジェクト指向プログラミングス:
- 封止、
- 制御変異の内部状態
- 限定カップリングの内部表現
- Subtyping ー:
- 置換対応タイプ(多型)
- 粗との共有の実装と授業の実施の継承)
プログラミング、ウもラノ-スカラ座で置換を通じてより一般的な機構のタイプ。変更可能な内部状態は落胆しくは禁止しています。封止の内部表現する、などのこともできます。見 ウvs OOP います。
ノーマンの主張"を追加するようなことがいえるでしょう機能プログラムが必要ですの編集に多くの機能を定義を追加する新しい事例に"どの機能コード専用タイプ。場合のパターンマッチング特定の抽象データ型に散コードベース、実に抱える問題ですがにこのような貧しいデザイン。
編集 除去への参照を暗黙的に変換を議論する場合、"タイプ。にスカラ型クラス符号化と暗黙的なパラメータは変換が暗黙的に変換は別の手段をacheiving置換の対応です。
かんに密兼環境、そして純粋な機能的プログラミングは便利です。が変更可能な状態にする並行処理でほぼるようにします。見Gettext.
にmultiparadigm言語がありますのモデルの一部も機能的に合の存在に変更可能な状態では必ず、実装の詳細とFPのモデルの問題ます。例えば、パンフレット一覧をご覧ください理解にはPython std.範囲 Dプログラミング言語.これらのイルミネーション機能プラグインです。