オリジナル住所:梁桂趙さんのブログ
ブログのアドレス:http://blog.720ui.com
国民の関心番号へようこそ:「サーバー側の思考を。」認知の限界を破り、洗練されたとともに、一緒に育つ同じ周波数のグループ。
Springフレームワークで話すGOFのデザインパターン
テキストの先頭には、事前にいくつかの質問を熟考してくださいになります。
- あなたはどのようなGOFのデザインパターンを投影し
- デザインパターンの23種類に設計GOFについての講演
- どのようにSpringフレームワークのデザインパターンについての講演
私は面接はあなたがこれらの質問に直面して尋ねた場合、あなたはそれに答えるか、どのように分間考えてください。
まあ、我々はビジネスを開始します。永続的なソリューションとベストプラクティスの数を提供し、デザイン練習モード。作成モード、構造や行動パターン:ここでは、GOFのデザインパターンは3つのカテゴリに分類します。例として作成モードは、オブジェクトを作成する場合に便利です。再利用およびアプリケーションのパフォーマンスを向上させるために、それによってアプリケーションの複雑さを低減する、エンタープライズアプリケーション処理クラスまたはオブジェクトの組合せによって設計構造に作用する構造モード。行動の意図パターンは、タスクではない独自の実行を実行するためのオブジェクト、個々のオブジェクトのグループとの間の相互作用です。これは、クラスやオブジェクトの相互作用と責任の分布を説明します。
だから、この紙のコアトピックは、デザインパターンやグッドプラクティスを多数使用してSpringアプリケーションを構築する方法です。
Factory Methodパターン
Springフレームワークは、工場出荷時のモードとたBeanFactory ApplicationContextのインタフェースSpringコンテナを実装するために使用されます。Springコンテナは、BeanファクトリパターンのベースとなってSpringアプリケーションを作成し、各Beanのライフサイクルを管理します。たBeanFactoryとApplicationContextのは、ファクトリインタフェースの実装クラスであり、多くは春に存在しています。マメ植物の方式に対応getBean()メソッド。
Abstract Factoryパターン
Springフレームワークでは、FactoryBeanのインターフェースは、抽象ファクトリ設計パターンに基づいています。スプリングは、そうでProxyFactoryBean、JndiFactoryBean、LocalSessionFactoryBean、LocalContainerEntityManagerFactoryBeanとして、インタフェースの実装の多くを提供します。春FactoryBeanのは、それ自体が容易に構築することができないオブジェクトを構築するのに役立ちます。これは通常、多くの依存関係を持つ複雑なオブジェクトを構築するために使用されます。また、構成に応じてハイ論理可変設定することができます。例えば、LocalSessionFactoryBeanのスプリングフレームワークは、豆Hibernate設定関連する基準を得るために使用されるFactoryBeanの実装です。SessionFactoryのオブジェクトを与えるために使用される前に、これは、データ・ソースの具体的な構成です。この点に関して、契約の場合にLocalSessionFactoryBean特定のデータソースの設定を取得することができます。読者は、この方法は、他のプロパティに注入される()FactoryBeanのgetObjectメソッドの結果を返すことができます。
シングルトン
スプリングフレームワークは、シングルモードの実施形態を達成するために豆の単一の実施形態を提供します。これは、単一の実施形態に似ていますが、単一のJavaモードの実施形態と同一ではありません。
ビルダーモード
春Frameworkには、いくつかの機能はBuilderパターンを可能にしています。次のSpring Frameworkベースのビルダーのモデルクラスは次のとおりです。
- EmbeddedDatabaseBuilder
- AuthenticationManagerBuilder
- UriComponentsBuilder
- BeanDefinitionBuilder
- MockMvcWebClientBuilder
アダプタモード
多くの機能を実装するためのアダプタパターンを使用して春のフレームワーク。以下に挙げるSpringフレームワークのクラスへのアダプタモードのいくつかの使用:
- JpaVendorAdapter
- HibernateJpaVendorAdapter
- HandlerInterceptorAdapter
- MessageListenerAdapter
- SpringContextResourceAdapter
- ClassPreProcessorAgentAdapter
- RequestMappingHandlerAdapter
- AnnotationMethodHandlerAdapter
- WebMvcConfigurerAdapter
ブリッジモード
以下は、春のブリッジモードモジュールを達成することに基づいています:
- ViewRendererServlet:それはサーブレットブリッジ、ポートレットMVCのための主要なサポートであります
- ブリッジモード:ブリッジモードに春のログ処理を使用
デコレーター
Springフレームワークは、このような取引、キャッシュの同期化およびセキュリティ関連のタスクなどの重要な機能を、構築するためにDecoratorパターンを使用しています。春はこのパターンを実装する機能のいくつかを見てみましょう:
- 春の織りは、アプリケーションに通知します。これは、実行時にターゲットクラスのサブクラスを生成することによって動作DecoratorパターンCGLIBエージェントを使用しています。
- BeanDefinitionDecorator:それはカスタム属性を使用してBean定義を強化します。
- WebSocketHandlerDecorator:それはWebSocketHandler追加の行動を強化するために使用。
Facadeパターン
あなたはSpringフレームワークを使用する場合は、エンタープライズ・アプリケーションでは、そのモデルの外観は一般的に、すべてのサービスを統合するために使用されるアプリケーションのビジネス・サービス層で使用されています。読者はまた、DAOの永続化レイヤでこのモデルを使用することができます。
プロキシモード
春AOPモジュールプロキシモードを使用して、Springフレームワーク。春AOPでは、横断的関心事を実装するためにプロキシオブジェクトを作成することができます。春では、他のモジュールはまた、RMI、春、ヘッセと黄麻布のHTTPコールとして、プロキシモードを達成しました。
Chain of Responsibilityパターン
春のセキュリティプロジェクトは、Chain of Responsibilityパターンを達成しました。春のセキュリティは、セキュリティフィルター・チェーンを使用して、アプリケーションに認証および承認機能を可能にします。このフレームワークは、高度な設定が可能です。責任デザインパターンの使用チェーンのために、我々は、カスタム機能を持つフィルター・チェーンにカスタムフィルタを追加することができます。
コマンドモード
Spring MVCのは、コマンドモードを実装しています。エンタープライズアプリケーションでSpringフレームワークを使用して、読者は、多くの場合、コマンドは、コマンドオブジェクトモデルを使用することによって実現される参照します。
Interpreterパターン
Springフレームワーク内(SPELの)春の式言語でモードを説明するために。春3.0から春は読者は、エンタープライズ・アプリケーションでSpringフレームワークを使用することができ、新しい機能が追加されます。
イテレータパターン
拡張型CompositeIterator反復モードを介してSpringフレームワーク。このモードは、主に順次要素を反復処理するためのJava言語コレクションフレームワークで使用されています。
Observerパターン
Springフレームワークでは、ApplicationContextののイベント処理機能を実装するためのオブザーバーモード。春はイベントを処理するために私達を可能にするためにApplicationEvent ApplicationListenerクラスとインタフェースを提供します。イベント発行者がメッセージをプッシュのような任意のBean実装ApplicationListenerインターフェースのスプリング・アプリケーションはApplicationEventを受け取ります。ここで、イベント発行は、対象(被写体)と実装Bean ApplicationListener観察者(観察)です。
アフタースクールの考え方
あなたは既にSpringフレームワークでの一般的な実装のGOFのデザインパターンは、それはSpringフレームワークは、シングルトンそれを達成する方法について言うことができることをご存知ですか?
コメント欄で自分の考えを共有し、私はまた、あなたがコメント欄にあなたの思考プロセスを記録するために歓迎してください。あなたはあなたにこの記事は参考になりまし見つければ読書のためのおかげで、また、より多くの友人と共有することを歓迎します。
最後に書かれました
[サーバー]思考:私たちはフロントラインの戦闘インターネットアーキテクチャとプロジェクト経験を探索するコアサーバ技術と話します。探求し、交流の自分のサークルを見つけるために単独R&D人材のすべてをしてみましょう。ここでは、認知の限界を打破するために、問題を解決するために最短経路に接続され、認知接続トップ技術ダニエル、思考の接続優れた方法、接続するすべての罰金の方法をアップグレードすることができます。
すべての「サーバー側の思考」でよりエキサイティングな記事、!