0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Software】プログラミングパラダイムとデザインパターン

Last updated at Posted at 2025-09-16

はじめに

ソフトウェア開発の世界では、プログラミングパラダイム(Programming Paradigm)デザインパターン(Design Pattern) という言葉をよく耳にします。
両者は似た文脈で語られることが多いですが、その役割や抽象度はまったく異なります。
本記事では、両者の違いを整理し、開発の現場でどのように位置づけられるかを解説します。


プログラミングパラダイムとは?

プログラミングパラダイムとは、プログラムをどう構築し、どう考えるかという「世界観」や「思想」 のことです。
言語や開発スタイルの根本を決める枠組みといえます。

主な種類

  • 命令型(Imperative):状態を更新しながら逐次処理
  • 手続き型(Procedural):関数や手続きに分解して処理
  • オブジェクト指向(OOP):クラス・オブジェクト、カプセル化、継承、多態
  • 関数型(FP):純粋関数、イミュータブルデータ、高階関数
  • ロジック型(Logic):事実と規則を定義し、推論によって解を導く
  • アスペクト指向(AOP):横断的関心事(ログ、セキュリティ、トランザクション)を切り出す

デザインパターンとは?

デザインパターンとは、あるプログラミングパラダイムに基づいて現れる「よくある設計課題」への再利用可能な解決手法 のことです。

GoF(Gang of Four)の分類

  • 生成に関するパターン:シングルトン、ファクトリー、ビルダー
  • 構造に関するパターン:デコレーター、アダプター、プロキシ
  • 振る舞いに関するパターン:オブザーバー、ストラテジー、テンプレートメソッド

両者の違い

観点 プログラミングパラダイム デザインパターン
抽象度 高い(哲学・思想レベル) 中(設計ノウハウレベル)
役割 コードの書き方・考え方のスタイル よくある問題への定型的な解決法
適用範囲 言語・システム全体 クラスやモジュール単位
OOP、FP、AOP シングルトン、オブザーバー、ストラテジー

関係性の例

例えば OOP(オブジェクト指向) というパラダイムの中で、

  • オブザーバーパターン によって「イベント通知の仕組み」を実現する
  • ストラテジーパターン によって「アルゴリズムの切り替え」を柔軟にする

また FP(関数型) の世界では、同じ問題を関数合成や高階関数で解決できるため、OOP のデザインパターンをそのまま使わない場合もあります。


図解(Mermaid)


まとめ

  • プログラミングパラダイム は「大きな思想」
  • デザインパターン は「その思想に基づく解決の型」
  • 先にパラダイムという土台があり、その上でデザインパターンを活用する

開発においては、まず どのパラダイムで考えるか を押さえ、その枠組みの中で パターンを道具として使う ことが重要です。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?