「インターフェース分離」モードの本質は、[間接]安定インターフェースの追加レイヤーを使用して、元々互いに密接に関連しているインターフェースを分離することです。実際、間接的な方法は、依存性逆転の原則など、以前の多くのデザインパターンに反映できます。これは、多態性を実現するために間接的なインターフェイスのレイヤーを追加することによって新しい方法を分離することです。ここでのインターフェースの統一された分離は、彼が非常に著名であるということだけです。
1.ファサードモード。主に内部と外部を分離するために使用されます。これは、緊密に結合された一連のインターフェイスを強力な関係でカプセル化し、それらすべてを1つのインターフェイスに提供することです。これがファサードであり、外部からアクセスされる一部の内部インターフェイスには、このファサードインターフェイスにアクセスすることによってのみアクセスできます。
唯一要注意的是这一组接口必须是很很强关系的并且紧耦合的
エージェントモデル
は、パフォーマンスやセキュリティなど、外部に知られていない一部のレイヤーをエージェントに透過的な間接レイヤーを追加します。
アダプター;実際のアダプターと同じように、あるインターフェースは使用するために別のインターフェースに変換され、中間レベルはアダプターです。
その実装の中核は、新しいインターフェイスを継承し、古いインターフェイスのポインタを組み合わせるアダプタクラスがあるため、継承された新しいインターフェイスのメソッドが実装されると、古いインターフェイスのメソッドが組み合わされて、新しいインターフェース。
特定の時間に、これらの3つのステップで新しいインターフェイスを完了して、古いインターフェイスクラスを呼び出すことができます。
oldInter * poldInter = new MyClass(); //古いインターフェイス
newInter * pnewInter = new Adaper(poldInter); //古いインターフェイスが新しいインターフェイス
pnewInter-> newPor();に結合されます。
#include "Adaper.h"
class newInter
{
public:
newInter();
~newInter();
virtual void newPor();
private:
};
class oldInter
{
public:
oldInter();
~oldInter();
virtual void oldPor1();
virtual void oldPor2();
private:
};
class MyClass : oldInter
{
public:
MyClass();
~MyClass();
virtual void oldPor1(){};
virtual void oldPor2(){};
private:
};
class Adaper : newInter//继承新接口
{
oldInter * oldInter;//组合
public:
Adaper(oldInter *oldInter){
this->oldInter = oldInter;
};
~Adaper();
virtual void newPor()//用旧接口的那一套实现新接口
{
oldInter->oldPor1();
oldInter->oldPor2();
}
};
int main()
{
oldInter *poldInter = new MyClass();//旧接口
newInter *pnewInter = new Adaper(poldInter);//旧接口组合成新接口
pnewInter->newPor();
return 0;
}
中間モード;実際には、ファサードモードに似ていますが、ファサードモードの役割と外部と内部の間のインターフェイス、および中間モードは、内部内部インターフェイスが非常に複雑な場合の役割と内部です。管理を完了するために仲介者を作成できますが、仲介者は対応する管理を完了するために多くのプロトコル仕様を定義する必要があります。