Javaのデザインパターンと関連するインタビューの質問

そのため、設計モデルのA.があまりにも複雑になって、何も自分自身を組織はありません。2件の記事について学ぶことができます。
JAVAのデザインパターンのデザインパターンの概要の23種類
デザインパターンの洞察力の23種類

全体的に、三つのカテゴリーにデザインパターンは:
Factory Methodパターン、Abstract Factoryパターン、シングルトン、Builderパターン、プロトタイプモデル:スキーマ、5つのカテゴリーの合計を作成します。
構造モデル、7種類の合計:アダプタモード、装飾的なモード、プロキシモード、外観モード、ブリッジモード、組み合わせモード、フライ級。
行動パターン、11種類の合計:
モードを説明するためのStrategyパターン、テンプレートメソッドパターン、オブザーバーモード、イテレータパターン、責任のチェーン・モード、コマンドモード、メモモード状態モード、ビジターパターン、仲介モデル

II。一般的な面接の質問
1.してくださいリストをいくつかのJDKで一般的なデザインパターン?
ランタイム、カレンダー、およびいくつかの他のクラスのシングルトンパターン。Factoryパターンは、Boolean.valueOf法のような不変のブールなど、さまざまなカテゴリで使用されています。オブザーバーパターンがスイングするために使用され、多くの時間をして聞いて。デコレータjavaのIOは、複数のクラスです。

何オブザーバーパターンを説明4.?
彼らは適切な処置を行うことができるように、オブザーバーパターンは、オブジェクトの状態の変化や通信の観測に基づいています。最も単純な例では、天候が変化したときに公衆に提示ビューに反映されなければならない気象システムです。このビューオブジェクトが対象となり、異なるビューがオブザーバーです。

5.工場出荷時のパターンを使用する利点は何が最も重要なのでしょうか?どこで使用するには?
最大の利点は、オブジェクトが作成されたときにファクトリパターンパッケージレベルを高めることです。
あなたがオブジェクトを作成するために工場を使用する場合は、元の製品の実現やコール・レベルで変更する必要はありません、より高度かつ高性能な実装を、使用したいを置き換えることができます。

装飾的なパターン(デコレータデザインパターン)のJava実装で6.?これは、オブジェクトレベルやクラス階層に作用していますか?
単一のオブジェクトの容量のデコレータ強い増加。JavaのIOはどこにでも装飾的なパターンを使用して、典型的な例は、このようなバッファをBufferedReaderやBufferedWriterのようなクラスのシリーズです、彼らはパフォーマンス向上のバッファのレベルを達成するためにリーダライタオブジェクトを高め読み取りおよび書き込み。

ATM機の7のデザインは、あなたのデザインのアイデアを明記してください。
例えば、金融システムの設計は、それらはすべてどのような場合に動作することができる必要があることを知っている必要があります。停電やその他の状況かどうかは、ATMが正しい状態(業務)を維持する必要があり、ロック(施錠)、トランザクション(取引)、エラー条件(エラー条件)、その上の境界条件(境界条件)と考えます。あなたは、特定のデザインを考えていますが、非機能要件を指摘することができれば、いくつかの質問をすることはできませんが、境界条件については、これらは非常に良いことだと思います。

Javaでは8、とき重い負荷、時に書き換えを使用するには?
あなたはクラスの異なる実装が同じことを行うためのさまざまな方法を持って表示された場合、(オーバーロード)が異なる入力して、書き換え(上書き)と同じことをやっている、むしろ重い負荷でなければなりません。Javaでは、この方法は、異なるシグネチャの過負荷が、書き換えられていません。

9.より多くの代わりにどのような状況下で、インタフェースの抽象クラスを使用するように傾斜させることが示して?
インターフェイスと抽象クラスは「インタフェースの実現ではなく、コーディング、」設計原理に従う、それはコードの柔軟性を高めることができます変化するニーズに適合させることができます。ここでは、この質問に答えることができますいくつかのポイントは以下のとおりです。

Javaでは、あなただけのクラスを継承することができますが、複数のインタフェースを実装することができます。あなたがクラスを継承したらだから、あなたは他のクラスを継承する機会を失うことになります。Runnableを、クローン可能な、あなたが行動を表現する抽象クラスを使用するときにシリアライズなど、そう、あなたができる同時のRunnableないクラスとClonables(注:それは意味されている場合は、本明細書を参照するインタフェースは、一般的に、子会社の行動を表すか、または記述するために使用されますRunnableをなど抽象クラスの場合として実装)、Javaであるため、あなたは、2つのクラスから継承することはできませんが、インターフェイスを使用する場合、あなたのクラスが同時に異なる行動の番号を持つことができます。需要の高いアプリケーションは、抽象クラスを使用する傾向がある時間の一部では、それがわずかに速いインタフェースよりもなります。あなたが仕様のシリーズを行いたい場合は、クラスの継承階層内にあり、より良い同じ場所でエンコードすることができ、その後、抽象クラスは、より良い選択です。時々、抽象クラスとインタフェースは、インタフェース関数が定義され、一緒に使用することができ、デフォルトの実装は、抽象クラスで定義されています。

公開された99元の記事 ウォンの賞賛2 ビュー2621

おすすめ

転載: blog.csdn.net/weixin_41588751/article/details/105206194