ホームページ 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 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Java フレームワークにおけるデザイン パターンとアーキテクチャ パターンの違い Java フレームワークにおけるデザイン パターンとアーキテクチャ パターンの違い Jun 02, 2024 pm 12:59 PM

Java フレームワークにおけるデザイン パターンとアーキテクチャ パターンの違いは、デザイン パターンがソフトウェア設計における一般的な問題に対する抽象的な解決策を定義し、ファクトリ パターンなどのクラスとオブジェクト間の相互作用に焦点を当てていることです。アーキテクチャ パターンは、階層化アーキテクチャなどのシステム コンポーネントの編成と相互作用に焦点を当てて、システム構造とモジュールの間の関係を定義します。

Java デザイン パターンにおけるデコレータ パターンの分析 Java デザイン パターンにおけるデコレータ パターンの分析 May 09, 2024 pm 03:12 PM

デコレータ パターンは、元のクラスを変更せずにオブジェクトの機能を動的に追加できる構造設計パターンです。抽象コンポーネント、具象コンポーネント、抽象デコレータ、具象デコレータの連携によって実装され、ニーズの変化に合わせてクラス機能を柔軟に拡張できます。この例では、ミルクとモカのデコレーターが総額 2.29 ドルで Espresso に追加されており、オブジェクトの動作を動的に変更するデコレーター パターンの力を示しています。

PHP設計パターンの実践事例分析 PHP設計パターンの実践事例分析 May 08, 2024 am 08:09 AM

1. ファクトリ パターン: オブジェクト作成とビジネス ロジックを分離し、ファクトリ クラスを通じて指定された型のオブジェクトを作成します。 2. オブザーバー パターン: サブジェクト オブジェクトが状態の変化をオブザーバー オブジェクトに通知できるようにし、疎結合とオブザーバー パターンを実現します。

デザインパターンがコードメンテナンスの課題にどのように対処するか デザインパターンがコードメンテナンスの課題にどのように対処するか May 09, 2024 pm 12:45 PM

デザイン パターンは、再利用可能で拡張可能なソリューションを提供することで、コード メンテナンスの課題を解決します。 オブザーバー パターン: オブジェクトがイベントをサブスクライブし、イベントが発生したときに通知を受信できるようにします。ファクトリ パターン: 具象クラスに依存せずにオブジェクトを作成するための集中的な方法を提供します。シングルトン パターン: クラスには、グローバルにアクセス可能なオブジェクトの作成に使用されるインスタンスが 1 つだけ存在することが保証されます。

Java 設計パターンにおけるアダプター パターンの素晴らしい使用法 Java 設計パターンにおけるアダプター パターンの素晴らしい使用法 May 09, 2024 pm 12:54 PM

アダプター パターンは、互換性のないオブジェクトが連携できるようにする構造設計パターンであり、オブジェクトがスムーズに対話できるように、あるインターフェイスを別のインターフェイスに変換します。オブジェクト アダプタは、適応されたオブジェクトを含むアダプタ オブジェクトを作成し、ターゲット インターフェイスを実装することにより、アダプタ パターンを実装します。実際のケースでは、クライアント (MediaPlayer など) はアダプター モードを通じて高度な形式のメディア (VLC など) を再生できますが、クライアント自体は通常のメディア形式 (MP3 など) のみをサポートします。

PHP デザイン パターン: テスト駆動開発の実践 PHP デザイン パターン: テスト駆動開発の実践 Jun 03, 2024 pm 02:14 PM

TDD は、高品質の PHP コードを作成するために使用されます。その手順には、テスト ケースを作成し、期待される機能を記述し、テスト ケースを失敗させることが含まれます。過度な最適化や詳細な設計を行わずに、テスト ケースのみが通過するようにコードを記述します。テスト ケースが合格したら、コードを最適化およびリファクタリングして、可読性、保守性、およびスケーラビリティを向上させます。

Guice フレームワークでのデザイン パターンの適用 Guice フレームワークでのデザイン パターンの適用 Jun 02, 2024 pm 10:49 PM

Guice フレームワークは、次のような多くの設計パターンを適用します。 シングルトン パターン: @Singleton アノテーションによってクラスのインスタンスが 1 つだけであることを保証します。ファクトリ メソッド パターン: @Provides アノテーションを使用してファクトリ メソッドを作成し、依存関係の注入中にオブジェクト インスタンスを取得します。戦略モード: アルゴリズムをさまざまな戦略クラスにカプセル化し、@Named アノテーションを通じて特定の戦略を指定します。

Java フレームワークでデザイン パターンを使用する利点と欠点は何ですか? Java フレームワークでデザイン パターンを使用する利点と欠点は何ですか? Jun 01, 2024 pm 02:13 PM

Java フレームワークでデザイン パターンを使用する利点には、コードの可読性、保守性、拡張性の向上が含まれます。欠点としては、複雑さ、パフォーマンスのオーバーヘッド、使いすぎによる学習曲線の急上昇などが挙げられます。実際のケース: プロキシ モードはオブジェクトの遅延読み込みに使用されます。デザイン パターンを賢く使用して、その利点を活用し、欠点を最小限に抑えます。

See all articles