ファクトリーパターンパターン


このチュートリアルでは(そしてもっと来て)私たちはJavaで最もよく使用されるデザインパターンについて話します.私はこれらの意味を理解するために多くのチュートリアルを捜しました、そして、非コンピュータ科学バックグラウンド子供として来て、すべてはあまりに外国人のようでした!私が読んだすべてのチュートリアルは、あまりにもJargonsまたは非謝罪的なlame clicheの例で満たされました.
だから私は現実世界のシナリオを作成し、それらのための解決策としてこれらのパターンを使用するように自分自身にそれを取ったので、私はこれらのより良い把握を得ることができます.
私が間違っている場合は、私はそれらを使用する方法のデザインパターンと私の解釈されているコズを修正してください.

デザインパターンは、コードベースが合理化され、再使用可能で安定していることを確認するために、与えられた状態で使用できる一般的なアイデアのセットです.
彼らはあなたのプロジェクトの必要性に応じてカスタマイズすることができますアイデアの青写真のように動作します.
時々単純なコードが仕事をするとき、我々が特定のデザインパターンのために行かなければならない必須の状況でありません.
アプリケーションパターンの設計またはスケールの複雑さに従って、3つの主要なカテゴリーに分けられます
0 , 566 , 917 , 000
担当研究員:丸山士郎
1/2
今日、私たちは最初の創造的パターンの一つについて話します.

ファクトリパターンはインターフェイスを使用してオブジェクトを作成するために使用されます.ここで、エンドユーザーは、実際にそれらを作成することについて心配する必要がないオブジェクトの種類を決定します.

その意味を理解するために、現実世界の例を挙げましょう.
電子メール通知、SMS通知、プッシュ通知などのような複数の配信タイプで通知システムを想像してください.
ここでは、すべてのシステムがエンドユーザに通知を送るのと同じ機能をしようとしています.しかし、彼らはこれを達成するために異なる実装戦略を持っています.そういうわけで、これは工場パターンを調査する大きな候補であると思います.
私たちは、個々のタイプによって実装される通知インターフェースを持っています.次に、エンドユーザーの選択に応じて通知サブタイプを返すファクトリを作成します.
十分な話は、コードに飛び込むことができます!



これは私たちのプロジェクトで最も重要なクラスです.これは、我々のシステム全体の青いプリントとして機能します.このクラスには、エンドユーザーがsendmessage ()、gettype ()、getmsginfo ()などのように必要なメソッドがあります.
現在のインタフェースは1つの方法しかなく、それは45457914 .ここで、すべての基本的な必要な情報を保持するシンプルな基本的なポジョーです.


通知インターフェイスを個別のクラス別の方法で実装されます.
どうやってできるか見てみましょう.


たった今、我々の電子メール通知クラスがしているすべては、コンソールに若干の情報を印刷しています.すべての通知pojo情報と一緒に.我々は、そのチュートリアルに焦点を当ててこの方法を維持します.
同様に、SMSNotificationとPushNotificationサブcalssesも作成します




我々はまた、通知のサブクラスを構築するために工場を使用している間、エンドユーザーのための容易さがあるように、49457914セントenumを作成します.


最後に、エンドユーザーに必要な通知クラスを吐き出すのに責任があります.


ここで、ユーザーは通知インターフェースのどの変種が返されるかを決定する通知タイプを通過します.そして、統一されたメソッド署名を使用して、残りの実装を簡単にすることができます.


このプログラムを実行するとき、これはコンソールで受け取る出力です


さて、これはケースであるかもしれません、しかし、アプリケーションが成長して、通知のタイプの数が成長するにつれて、エンドユーザーがトラックを保つのはますます複雑になります.それで、工場の方法論は、エンドユーザーがAPIを呼ぶのに十分簡単で抽象的になります.
我々のアプリケーションとして成長し、ますます複雑になる.繰り返しパターンは、問題とボトルネックの出現を開始し、それらを解決するために設計パターンのこれらの青写真を使用することができます.
希望、あなたはすべての記事を通過する素晴らしい時間を過ごした.それが役に立つならば、私に知らせてください.
我々がこのシリーズで議論するすべてのコードも、私のGithubプロジェクトに存在します.


私の時代は、コーヒーと棺だけで燃えています.だから私は知っている🤞