検索
ホームページJava&#&ベースデザインパターンの概念を簡単に説明します

デザインパターンの概念を簡単に説明します

Apr 22, 2020 am 10:08 AM
デザインパターン

デザインパターンの概念を簡単に説明します

#デザイン パターンとは

デザイン パターンは、繰り返し使用され、ほとんどの人に知られている一連のコード設計エクスペリエンスです。要約すると、それは特定の言語とは何の関係もなく、一種の思想です。

オブジェクト指向の思考をマスターすることによってのみ、デザイン パターンをより深く理解できるようになり、その逆も同様です。

デザイン パターンは、ソフトウェア エンジニアリングの実践中にプログラマーによってまとめられた優れたプログラミング手法です。

デザインパターンは全部で23種類あります。

これらの 23 の設計パターンの本質は、オブジェクト指向設計原則の実践的な適用と、クラスのカプセル化、継承、ポリモーフィズム、およびクラスの関連付けと組み合わせの関係を完全に理解することです。

(推奨関連ビデオ チュートリアル:

java ビデオ )

設計パターンの分類

1. 作成パターン

クリエイティブ パターン (5 種類): シングルトン パターン、ファクトリ メソッド パターン、抽象ファクトリ パターン、ビルダー パターン、プロトタイプ パターン。

2. 構造モード

構造モード (7 種類): アダプター モード、デコレーター モード、プロキシ モード、アピアランス モード、ブリッジ モード、コンビネーション モード、フライウェイト モード。

3. 行動パターン

行動パターン (11 種類): 戦略パターン、テンプレートメソッドパターン、オブザーバーパターン、反復サブパターン、責任連鎖パターン、コマンドパターン、メモパターン、状態パターン、訪問者パターン、仲介者パターン、通訳者パターン。

デザイン パターンの 6 つの原則

一般原則: 開始と終了の原則

拡張にはオープン、変更にはクローズ。プログラムを拡張する必要がある場合、元のコードを変更することはできませんが、ホットスワップ可能な効果を実現するには、元のコードを拡張する必要があります。つまり、プログラムをスケーラブルにし、保守とアップグレードを容易にするためです。

この効果を実現するには、インターフェイスや抽象クラスなどを使用する必要があります。これについては、後で具体的な設計で説明します。

1. 単一責任の原則

クラス変更の理由は複数あってはならない、つまり、各クラスは単一の責任を実装する必要があり、そうでない場合はクラスを分割する必要があります。

2. リスコフ置換原理

基本クラスが出現できる場所には必ず、サブクラスが出現する可能性があります。 Liskov 置換原則は継承再利用の基礎です。派生クラスが基本クラスを置き換えることができ、ソフトウェア ユニットの機能が影響を受けない場合にのみ、基本クラスを真に再利用でき、派生クラスは新しいクラスを追加することもできます。基本クラスの基礎の動作。

リヒター置換原則は、「オープン-クローズド」原則を補足するものです。 「オープン-クローズド」原則を実現するための重要なステップは抽象化です。基本クラスとサブクラス間の継承関係は抽象化の特定の実装であるため、リスコフ置換原則は抽象化を達成するための特定の手順の仕様です。 Liskov 置換原則では、サブクラスは親クラスのメソッドを上書きまたはオーバーロードしないように努めるべきです。親クラスは定義された構造を表し、この標準化されたインターフェイスを通じて外部と対話するため、サブクラスはそれを無造作に破壊すべきではありません。

3. 依存関係逆転の原則

インターフェイス指向プログラミングは、具体性ではなく抽象化に依存します。コードを記述するときに具象クラスを使用すると、具象クラスとは対話せず、具象クラスの上位インターフェイスと対話します。

4. インターフェイス分離の原則

各インターフェイスには、サブクラスによって使用されないが実装する必要があるメソッドはありません。そうでない場合は、インターフェイスを分割する必要があります。単一のインターフェイス (複数のインターフェイス メソッドを 1 つのインターフェイスに組み合わせたもの) を使用するよりも、複数の分離されたインターフェイスを使用する方が適切です。

5. デメテル原理 (デメテル原理)

クラスが依存するクラスについての知識は少ないほど良いです。依存クラスがどれほど複雑であっても、ロジックはメソッド内にカプセル化され、パブリック メソッドを通じて外部に提供される必要があります。このようにして、依存クラスが変更された場合、クラスへの影響は最小限に抑えられます。

あまり知られていない原則のもう 1 つの表現は、「直接の友人とのみ通信する」です。クラス間にカップリング関係がある限り、それをフレンド関係と呼びます。結合は依存、関連、集約、結合などに分けられます。メンバー変数、メソッドのパラメータ、メソッドの戻り値に現れるクラスを直接の友達と呼びます。ローカル変数と一時変数は直接の関係はありません。馴染みのないクラスがクラス内のローカル変数として表示されないようにする必要があります。

6. 複合再利用の原則

継承ではなく、最初に合成/集約を使用するようにしてください。

推奨チュートリアル:

Java の入門

以上がデザインパターンの概念を簡単に説明しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター