手続き指向 と オブジェクト指向
Rくんの blog にコメント付けてから、 つらつら考えた。
# R氏、 Rさん と書くべきなんだけど。 ゆうきまさみファンとしては、 「Rくん」 以外は書きにくい f(^^;
構造化されたプログラム ( structured program --- 通常、 構造化プログラム と訳される ) って、 手続きを志向したプログラム ( procedure oriented program --- 通常、 手続き指向プログラム と訳される ) の一種だよなぁ、 と。
ただし、 その手続きは 「構造化されたプログラムの一般的な原理・原則」 ( structured program theorem --- 通常、 構造化定理 と訳される ) に則っていること、 という制限が付いてるけど。
だけど、 手続き ( procedure ) とプログラムって、 どう違うんだっけ…?
…で、 ようやく気が付いた。
構造化プログラミングでは、 プログラム = 手続き だし。
OOP では、 プログラム = オブジェクト じゃん。
・ 「手続きを志向したプログラム」 を考えるに、 プログラム自体も手続き ( procedure ) であると見ます。
・ この手続きは、 他によって開始され、 決められた処理を行い、 また他の手続きを開始させ、 そして自身の判断により終了します。
・ 手続きは、 ( より小さな、 複数の ) 手続きから成っています。
※ 手続き ( procedure ) は、 現実の手続きや業務フローと似ていることがあるかもしれませんが、 本質的には別物です。
比べると、 モノを志向したプログラム ( object oriented program --- 通常、 オブジェクト指向プログラム と訳される ) は。
・ 「モノを志向したプログラム」 を考えるに、 プログラム自体もモノ ( object ) であると見ます。
・ このモノは、 他によって生成され、 他からの刺激に反応し、 また他のモノを生成し刺激し、 そして他からの刺激または自身の判断により消滅します。
・ モノは、 ( より小さな、 複数の ) モノから成っています。
※ モノ ( object ) は、 現実の物や人と似ていることがあるかもしれませんが、 本質的には別物です。
で、 けっきょく、 どちらもその道具立てとかを覚えるのは、 じつはたいしたことじゃなくて。 「○○は、 ( より小さな、 複数の ) ○○から成っています」 というのが、 難しい。 つまり、 プログラムの中をどういうふうに分割していけばよいのか、 というところがどちらも難しい。
# そこって… アーキテクチャ設計なんでは? 「○○指向プログラミング」 って言うくせに、 そのキモはプログラミング技法じゃなくてアーキテクチャ設計論だなんて、 詐欺だよな~ f(^^;
| 固定リンク
「プログラミング」カテゴリの記事
- 【.NET / Win8.1 ストアアプリ】 HttpClient で TLS 1.1 / 1.2 に対応するには(2018.06.17)
- 【VS2017 15.7pv2】 XAML のランタイム ツールに 「ヒートマップ」 が増えた(2018.03.28)
- 【.NET Core】 プロジェクトを作ると 「project.assets.json が見つかりません」 エラー(2018.02.10)
- 【#UWP】 ビットマップの表示色を変える (Win2D.uwp 経由で Direct2D を使う)(2017.08.23)
- 【#UWP】 CompactOverlay モード: Picture in Picture というか、「最前面に表示」するウィンドウを作る(2017.08.16)
「-プログラミング ( わんくま )」カテゴリの記事
- [わんくま名古屋] 第21回: Metro サンプルコード解説 (1/3)(2012.04.15)
- [わんくま名古屋] 第21回は 4月 14日 - Windows 8 Metro をやるよ~♪(2012.04.12)
- [わんくま東京] 第59回の資料を公開しました(2011.06.02)
- [わんくま東京] 第59回は 5月 28日 - 名古屋から侵略します♪(2011.05.23)
- [わんくま名古屋] 第17回は 4月 9日 - TDD ネタで喋ります(2011.04.03)
この記事へのコメントは終了しました。
コメント