【対象向けデザインモード】インターフェースタイプ(一)
4020 ワード
..。
..。
作者 :万の境に塵を絶つ
転載は出典を明記してください。 : http://blog.csdn.net/shulianghan/article/details/19028507
..。
インターフェースタイプの構成 : このモードは、アダプター(Adapter)モード、外観(Facade)モード、合成(Compsite)モード、ブリッジ(Bridge)モードを含む。 四つのモード
クラスのインターフェース:
--フロント条件:インターフェースA、クラスB、クラスBはインターフェースAを実現します。
--アクセスを許可します。クラスAは他のクラスのオブジェクトがクラスBの方法とフィールドにアクセスできるようにします。クラスAはクラスBのインターフェースです。
--関係の実現:クラスB方法はクラスAインターフェースの方法名表示の操作を実現する必要があり、クラスAの実現はクラスBの方法体のコードである。
インターフェースと実装の概念:インターフェースと実装は分離されており、Javaは複数のクラスが同じインターフェースを実現することを可能にし、同じ機能を提供する。一つのクラスが複数のインターフェースを実現することも可能です。
--インターフェース:対象が従わなければならない承諾;
--実現:対象が承諾を履行すれば;
1.インターフェースと抽象類
インターフェースと抽象類の違い:抽象類の中では全部抽象的な方法であっても、インターフェースと似ているように見えるが、やはりインターフェースとは大きく違っている。
--継承個数を実現します。クラスAは複数のインターフェースを実現できますが、抽象クラスを継承するしかありません。
--抽象的な方法の個数:インターフェースは必ず抽象的な方法であり、抽象的な種類には具体的な方法が含まれています。
--フィールドを使用するかどうか:インターフェースではstatic final定数フィールドのみ作成できます。抽象的なクラスでは、任意のタイプのフィールドを宣言して使用できます。
--方法の記述子:インターフェースの方法はpublic修飾でなければなりません。抽象類の中では任意の限定でもいいです。
--コンストラクタがありますか?インターフェースにはコンストラクタがありません。抽象的なクラスにはコンストラクターがあります。
C言語とJavaインターフェースの違い:C言語には抽象類しかなく、インタフェースがなく、Java言語には両方があります。
インターフェースの役割:インターフェースが使えないなら、抽象的なクラスを使って代替できます。インターフェースは多層開発において大きな役割を果たします。例えば、J 2 EEにおけるMVCアーキテクチャです。
実際の例:火砲と戦車はすべて装甲車に属しており、両者の応用の場合はそれぞれ違っていますが、それらは同じところがあり、インターフェースとして定義できます。
--抽象的な方法:インターフェースの中の方法は全部抽象的な方法で、abstract声明があるかどうかに関わらず。
--公開方法:インターフェースの中の方法は全部公開方法で、public修飾があるかどうかに関わらず;
--完全に公開されていません。インターフェースの中の方法はパッケージ内で公開されています。publicの装飾がなければ、パッケージ内でアクセスできますが、パッケージ外でアクセスできません。パッケージ外でこのインターフェースにアクセスするには、publicの修飾が必要です。
--インターフェース継承:インターフェースAは、ListインターフェースがCollectionインターフェースを継承するような別のインターフェースBを継承することができる。
--インターフェースには必ずしも方法があるとは限りません。方法のないインターフェースはタグインターフェースとなり、マークインターフェースの役割-一つのインターフェースは継承レベルが高いので、その方法はすべてのクラスに適用されるとは限りません。もし私たちはこの継承システムが存在することを望むなら、マークインターフェースを作成することができます。その中にはいかなる方法も定義されていません。
--インターフェースフィールド:インターフェースではstatic finalフィールドのみを宣言できます。インターフェース実装クラスではこれらのフィールドを直接呼び出すことができます。他のインスタンスフィールドはインターフェースで宣言することができません。
--インターフェース構造関数:インターフェースではコンストラクターを定義できません。定義すれば、この特定のコンストラクタを実現する必要があります。実用的ではありません。
2.インターフェースと職責
インターフェースの利点:インターフェースはオブジェクト間のインタラクションプロセスを制限しています。このような利点は、インターフェースの実装クラスに大きな変化が発生しても、インターフェースは変わらないです。インターフェースのクラスは正常に動作します。
--eg:上のPanzerでクラス編成を実現する時、開発者はこのインターフェースの三つの方法を実現しなければなりません。これは方法に従って作成した契約です。
実装クラスは、すべての方法を実装する必要はありません。実装クラスは、インターフェースの抽象的なタイプの呼び出しを無視することができますが、空の方法体を提供する必要があります。言い換えれば、インターフェースはまだ実装されますが、使用しないことができます。
--杭の概念:stub、杭はインターフェースの実現類で、クラスの中のすべての方法を実現しましたが、これらの方法はすべて方法体がなく、実際の意味がありません。
――杭の役割:開発者が一つのインターフェースを実現するには、すべての抽象的な方法を一度実現する必要があります。書くのが面倒くさいです。コードも冗長です。ここで杭を継承して、自分の興味のある方法を実現します。
インターフェース宣言定数:インターフェースにはstatic finalタイプの定数しか保存できません。変数を宣言できません。もし「String str」を定義するとエラーが発生します。
..。
3.異なるシーンのインターフェースアプリケーション
アダプタモード:クライアントの期待に合致するインターフェースに適合するように適合されたインターフェース。例えばAのような需要が実現されたが、その方法名はインターフェースに合わないので、ここでアダプタモードを使用する必要がある。
外観モード:クラスのための簡単なインターフェースを提供します。
合成モード:単一のオブジェクトと複合オブジェクトに統一したインターフェースを提供する。
ブリッジモード:抽象と現実の結合を解除して、両者を独立に進化させます。
..。
..。
作者 :万の境に塵を絶つ
転載は出典を明記してください。 http://blog.csdn.net/shulianghan/article/details/19028507
..。
..。
作者 :万の境に塵を絶つ
転載は出典を明記してください。 : http://blog.csdn.net/shulianghan/article/details/19028507
..。
インターフェースタイプの構成 : このモードは、アダプター(Adapter)モード、外観(Facade)モード、合成(Compsite)モード、ブリッジ(Bridge)モードを含む。 四つのモード
クラスのインターフェース:
--フロント条件:インターフェースA、クラスB、クラスBはインターフェースAを実現します。
--アクセスを許可します。クラスAは他のクラスのオブジェクトがクラスBの方法とフィールドにアクセスできるようにします。クラスAはクラスBのインターフェースです。
--関係の実現:クラスB方法はクラスAインターフェースの方法名表示の操作を実現する必要があり、クラスAの実現はクラスBの方法体のコードである。
インターフェースと実装の概念:インターフェースと実装は分離されており、Javaは複数のクラスが同じインターフェースを実現することを可能にし、同じ機能を提供する。一つのクラスが複数のインターフェースを実現することも可能です。
--インターフェース:対象が従わなければならない承諾;
--実現:対象が承諾を履行すれば;
1.インターフェースと抽象類
インターフェースと抽象類の違い:抽象類の中では全部抽象的な方法であっても、インターフェースと似ているように見えるが、やはりインターフェースとは大きく違っている。
--継承個数を実現します。クラスAは複数のインターフェースを実現できますが、抽象クラスを継承するしかありません。
--抽象的な方法の個数:インターフェースは必ず抽象的な方法であり、抽象的な種類には具体的な方法が含まれています。
--フィールドを使用するかどうか:インターフェースではstatic final定数フィールドのみ作成できます。抽象的なクラスでは、任意のタイプのフィールドを宣言して使用できます。
--方法の記述子:インターフェースの方法はpublic修飾でなければなりません。抽象類の中では任意の限定でもいいです。
--コンストラクタがありますか?インターフェースにはコンストラクタがありません。抽象的なクラスにはコンストラクターがあります。
C言語とJavaインターフェースの違い:C言語には抽象類しかなく、インタフェースがなく、Java言語には両方があります。
インターフェースの役割:インターフェースが使えないなら、抽象的なクラスを使って代替できます。インターフェースは多層開発において大きな役割を果たします。例えば、J 2 EEにおけるMVCアーキテクチャです。
実際の例:火砲と戦車はすべて装甲車に属しており、両者の応用の場合はそれぞれ違っていますが、それらは同じところがあり、インターフェースとして定義できます。
public interface Panzer {
abstract int getSpeed(); //
public double getCaliber(); //
void fire(); //
}
上記の例からインターフェースのいくつかの特性を列挙します。 --抽象的な方法:インターフェースの中の方法は全部抽象的な方法で、abstract声明があるかどうかに関わらず。
--公開方法:インターフェースの中の方法は全部公開方法で、public修飾があるかどうかに関わらず;
--完全に公開されていません。インターフェースの中の方法はパッケージ内で公開されています。publicの装飾がなければ、パッケージ内でアクセスできますが、パッケージ外でアクセスできません。パッケージ外でこのインターフェースにアクセスするには、publicの修飾が必要です。
--インターフェース継承:インターフェースAは、ListインターフェースがCollectionインターフェースを継承するような別のインターフェースBを継承することができる。
--インターフェースには必ずしも方法があるとは限りません。方法のないインターフェースはタグインターフェースとなり、マークインターフェースの役割-一つのインターフェースは継承レベルが高いので、その方法はすべてのクラスに適用されるとは限りません。もし私たちはこの継承システムが存在することを望むなら、マークインターフェースを作成することができます。その中にはいかなる方法も定義されていません。
--インターフェースフィールド:インターフェースではstatic finalフィールドのみを宣言できます。インターフェース実装クラスではこれらのフィールドを直接呼び出すことができます。他のインスタンスフィールドはインターフェースで宣言することができません。
--インターフェース構造関数:インターフェースではコンストラクターを定義できません。定義すれば、この特定のコンストラクタを実現する必要があります。実用的ではありません。
2.インターフェースと職責
インターフェースの利点:インターフェースはオブジェクト間のインタラクションプロセスを制限しています。このような利点は、インターフェースの実装クラスに大きな変化が発生しても、インターフェースは変わらないです。インターフェースのクラスは正常に動作します。
--eg:上のPanzerでクラス編成を実現する時、開発者はこのインターフェースの三つの方法を実現しなければなりません。これは方法に従って作成した契約です。
実装クラスは、すべての方法を実装する必要はありません。実装クラスは、インターフェースの抽象的なタイプの呼び出しを無視することができますが、空の方法体を提供する必要があります。言い換えれば、インターフェースはまだ実装されますが、使用しないことができます。
--杭の概念:stub、杭はインターフェースの実現類で、クラスの中のすべての方法を実現しましたが、これらの方法はすべて方法体がなく、実際の意味がありません。
――杭の役割:開発者が一つのインターフェースを実現するには、すべての抽象的な方法を一度実現する必要があります。書くのが面倒くさいです。コードも冗長です。ここで杭を継承して、自分の興味のある方法を実現します。
インターフェース宣言定数:インターフェースにはstatic finalタイプの定数しか保存できません。変数を宣言できません。もし「String str」を定義するとエラーが発生します。
public interface Panzer {
public static final String TANK_1 = "KV";
public static final String CANNON_1 = "SU-51";
abstract int getSpeed(); //
public double getCaliber(); //
void fire(); //
}
エニュメレート・エニュメレート・エンムとは、通常インターフェースにおいてグループ種別の定数が定義される。..。
3.異なるシーンのインターフェースアプリケーション
アダプタモード:クライアントの期待に合致するインターフェースに適合するように適合されたインターフェース。例えばAのような需要が実現されたが、その方法名はインターフェースに合わないので、ここでアダプタモードを使用する必要がある。
外観モード:クラスのための簡単なインターフェースを提供します。
合成モード:単一のオブジェクトと複合オブジェクトに統一したインターフェースを提供する。
ブリッジモード:抽象と現実の結合を解除して、両者を独立に進化させます。
..。
..。
作者 :万の境に塵を絶つ
転載は出典を明記してください。 http://blog.csdn.net/shulianghan/article/details/19028507
..。