「PHP デザイン パターンの概要」はじめに
アプリケーションから新しい機能を常に発見しようとしているとき、提案したソリューションが以前に実装したものと非常に似ていることに気づきましたか?あなたがプログラマーであれば (プログラマーを始めてまだ日が浅いとしても)、おそらく「はい」と答えたでしょう。ソフトウェア開発中に新たに発見された問題を解決するために古いコードを使用しているようです。あなたのソリューションは基本原則であり、あなただけでなくすべてのプロの開発者が広く繰り返すことができる方法であることに気づいたかもしれません。
実際、プログラミングに関する多くの問題は繰り返し発生しており、これらの問題を解決するために使用される多くの基本的な手法 (またはデザイン パターン) が登場しています。デザイン パターンは、本物で信頼できるデザインを使用してコードを編成する方法を教えるテンプレートです。
デザインパターンの歴史
「デザインパターン」という用語は、もともと建築の分野で造語されました。 Christopher Alexander は 1977 年の著書『A Pattern Language: Towns/Building/Construction』の中で、いくつかの一般的な建築設計の問題について説明し、この既存のよく知られたパターンのコレクションを使用して新しい効果的な設計を開始する方法を説明しています。 Alexander の視点はソフトウェア開発にもうまく反映されており、既存のコンポーネントを使用して新しいソリューションを構築することについては長期的なコンセンサスがあります。 Web Teaching Network
すべてのデザイン パターンには、名前、問題ステートメント、解決策という共通の特徴があります。 Webjx.Com
デザイン パターンの識別は、他のプログラマがあまり深く勉強しなくてもコードの目的をすぐに理解できるため、重要です (少なくともこの識別を通じてプログラマはこのパターンに精通します)。
問題の説明は、このモデルのアプリケーション ドメインを説明するために使用されます。 ?
ソリューションはこのモデルの実行を説明します。設計パターンについて十分に議論するには、モデルを使用する利点と欠点が含まれている必要があります。
パターンは、特定の問題を解決する効果的な方法です。デザイン パターンはライブラリ (プロジェクトに含めて直接使用できるコードのライブラリ) ではなく、コードを整理するためのテンプレートです。実際、コード ベースとデザイン パターンの適用には多くの違いがあります。
たとえば、店で購入するシャツはコード ライブラリですが、その色、スタイル、サイズはデザイナーとメーカーによって決定されますが、それはあなたのニーズを満たします。
ただし、お店に自分に合うものがなければ、自分でシャツを作ることもできます(形をデザインし、生地を選び、一緒に仕立てます)。ただし、仕立て屋ではない場合は、適切なパターンを見つけて、そのパターンに従って独自のシャツをデザインするのは簡単かもしれません。モックアップを使用すると、適切なデザインのシャツを短時間で作成できます。
ソフトウェアの話に戻りますが、データ抽出レイヤーや CMS (コンテンツ管理システム) はライブラリです。これは以前に設計され、コーディングされており、ニーズを正確に満たす場合、それはライブラリです。良い選択です。しかし、これを読んでいるあなたは、ストックソリューションが常に効果があるとは限らないことに気づいたかもしれません。自分が何を望んでいるのかが分かり、それを達成できるようになったので、あとはガイドとなるモデルが必要です。
最後にもう 1 つ: 仕立てモデルと同じように、デザインはそれ自体ではほとんど役に立ちません。結局のところ、衣服のモデルを着ることはできません。それは薄い紙をつなぎ合わせただけです。同様に、ソフトウェア設計モデルも単なるガイドにすぎません。プログラミング言語とアプリケーションの特性と要件に従って特別に設計する必要があります。
この本の目的
この本の目的は、さまざまなカテゴリのソフトウェア設計パターンを包括的に紹介したり、新しい設計パターンや用語を開発したりすることではなく、既存の有名な設計モデルをいくつか紹介することです。この本のユニークな点は、動的 WEB アプリケーションの開発に役立つと思われるいくつかのデザイン パターンを紹介し、これらのデザイン パターンを PHP で実装する方法を示していることです。
オブジェクト指向プログラミング OOP
この本の利点の 1 つは、すべての視点が非常に自然な設計パターンである OOP に基づいており、OOP を使用して実装されていることです。
OOP に詳しくない場合でも、OOP をより深く理解するのに役立つ関連リソース (書籍、Web サイト、雑誌、クラスなど) が多数あります。ほとんどの OOP 文献は、コードの再利用、コードの堅牢性、コードのカプセル化、ポリモーフィズム、拡張性など、その利点を称賛していますが、これらはすべて非常に重要で有用でもあります。ただし、OOP の主な利点は、問題を自分で扱いやすいモジュールに分解することを促進することだと思います。小さなモジュールに分割された明確な設計と実装により、コードをより徹底的にテストでき、理解と保守が容易になります。
読者のスキル要件
この本は、読者がすでに PHP に堪能であることを前提としています。特に、この本は、読者が PHP と PHP 構文に関する実用的な知識をすでに持ち、OOP を使用して PHP コードを実行する基本原則を理解していることを前提としています。この本は PHP プログラミングの入門書ではなく、PHP での OOP プログラミングを紹介することを目的としたものでもありません。
すべての OOP 開発者が同じ用語を使用しているわけではないため、新しい用語が導入された場合は、テキストまたはツールバーで定義します。