1.ソフトウェアデザインパターンの概要

この記事では、ソフトウェアデザインパターン全体の概念と特徴、ソフトウェアデザインパターンの基本要素、およびGoFの23のデザインパターンの概要を紹介します。

ソフトウェアデザインパターンの背景

「デザインパターン」という用語は、当初はソフトウェアデザインには登場しませんでしたが、アーキテクチャの分野のデザインで使用されていました。

1977年、有名なアメリカ人建築家であり、カリフォルニア大学バークレー校の環境構造センターの所長であるクリストファーアレクサンダーは、彼の著書「パターン言語:町の建物の建設」(パターン言語:町の建物の建設)にいくつかの一般的な建築設計について説明しています。問題を解決し、町、近所、家、庭、部屋を設計するための253の基本モデルを提案します。

1979年に、彼の他の古典的な本「The Timeless Way of Building」(The Timeless Way of Building)は、デザインモードの概念をさらに強化し、後の建築設計の方向性を指摘しました。

1987年、ケントベックとウォードカニンガムは、クリストファーアレクサンダーの考え方を、Smalltalkでのグラフィカルユーザーインターフェイスの生成に最初に適用しましたが、ソフトウェア業界では問題を引き起こしませんでした。

ソフトウェアエンジニアリングコミュニティがデザインパターンのトピックについて議論し始めたのは1990年になってからであり、その後、デザインパターンに関するいくつかのセミナーが開催されました。

1995年に、ErichGamma、Richard Helm、Ralph Johnson、John Vlissidesなどを含む4人の著者が、「デザインパターン:再利用可能なオブジェクト指向ソフトウェアの要素」(デザインパターン:再利用可能なオブジェクト指向ソフトウェアの要素)という本を共同出版しました。このチュートリアルには、23のデザインパターンが含まれています。これは、デザインパターンの分野における画期的なイベントです。ソフトウェアデザインパターンのブレークスルーにつながります。これらの4人の著者は、ソフトウェア開発の分野では匿名で「Gang of Four」(GoF)としても知られています。
ここに画像の説明を挿入

今日まで、狭いデザインパターンは、このシリーズの記事で紹介された23のクラシックなデザインパターンです。

ソフトウェアデザインパターンの概念と意味

ソフトウェアデザインパターンには多くの定義があり、パターンの特性から説明されるものもあれば、パターンの役割から説明されるものもあります。このチュートリアルで与えられた定義は、ほとんどの学者によって認識されており、次の2つの側面から説明されています。

1.ソフトウェアデザインパターンの概念

ソフトウェアデザインパターン(ソフトウェアデザインパターン)は、デザインパターンとも呼ばれ、繰り返し使用される、ほとんどの人が知っている、分類されたカタログ、コードデザインエクスペリエンスの概要のセットです。ソフトウェア設計プロセスで繰り返し発生するいくつかの問題と、問題の解決策について説明します。言い換えれば、それは特定の問題を解決するための一連のルーチンであり、前任者のコード設計経験の要約であり、特定の一般性を持ち、繰り返し使用することができます。その目的は、コードの再利用性、コードの可読性、およびコードの信頼性を向上させることです。

2.デザインパターンを学ぶことの重要性

デザインパターンの本質は、オブジェクト指向の設計原則の実用化であり、クラスのカプセル化、継承、ポリモーフィズム、およびクラスの関連付けと構成の関係を完全に理解しています。デザインパターンを正しく使用すると、次のような利点があります。

プログラマーの思考能力、プログラミング能力、デザイン能力を向上させることができます。
プログラムの設計がより標準化され、コードの準備がよりエンジニアリングされ、ソフトウェア開発の効率が大幅に向上し、ソフトウェア開発サイクルが短縮されます。
設計されたコードを、高い再利用性、強力な可読性、高い信頼性、優れた柔軟性、および強力な保守性にします。

もちろん、ソフトウェアデザインパターンは単なるガイドです。特定のソフトウェア開発では、設計されたアプリケーションシステムの特性と要件に応じて適切に選択する必要があります。単純なプログラム開発の場合、特定のデザインパターンを導入するよりも、単純なアルゴリズムを作成する方が簡単な場合があります。ただし、大規模なプロジェクトやフレームワークデザインの開発では、デザインパターンを使用してコードを整理する方が明らかに優れています。

ソフトウェアデザインパターンの基本要素

ソフトウェアデザインパターンは、成功したデザインやアーキテクチャを再利用するのをより簡単かつ便利にします。通常、パターン名、エイリアス、動機、問題、解決策、効果、構造、パターンの役割、パートナーシップ、実装方法、適用性などの基本的な要素が含まれます。 、既知のアプリケーション、ルーチン、パ​​ターン拡張、および関連するパターン。これらの中で最も重要な要素には、次の4つの主要部分が含まれます。

  1. モード名
    各モードには独自の名前があり、通常は1つまたは2つの単語で表され、モードの問題、特性、解決策、機能、および効果に応じて名前を付けることができます。パターン名(PatternName)は、パターンを理解して覚えるのに役立ちます。また、自分のデザインについて話し合うのにも便利です。
  2. 問題
    (問題)は、モードのアプリケーション環境、つまりモードをいつ使用するかを示します。設計上の問題と問題の原因と結果、および満たす必要のある一連の前提条件について説明します。
  3. ソリューション
    モデルの問題(ソリューション)のソリューションには、設計のコンポーネント、それらの間の関係、およびそれぞれの責任とコラボレーション方法が含まれます。パターンはさまざまな状況に適用できるテンプレートのようなものであるため、ソリューションは特定の特定の設計または実装を説明しませんが、設計の問題の抽象的な説明と、一般的な意味を持つ要素の組み合わせの使用方法を提供します(この問題を解決するには、クラスまたはオブジェクトの組み合わせ)。
  4. 効果
    は、モードの適用効果と、モードを使用するときに考慮すべき問題、つまりモードの長所と短所を説明します。これは主に、時間とスペース、およびこのモードがシステムの柔軟性、スケーラビリティ、および移植性に与える影響を測定し、その実装の問題を検討することです。これらの効果(結果)を明示的にリストすることは、これらのパターンを理解して評価するのに非常に役立ちます。

おすすめ

転載: blog.csdn.net/m0_46864744/article/details/112798585