Adapter パターンの実装がインターフェイスの実現に依存しているかどうかを理解しようとしています。私が読んだことから、クラスのインターフェースをクライアントが期待する別のインターフェースに変換する必要がある場合は、アダプターを使用する必要があります。
私は、アダプターを使用して 3 極プラグを 2 極プラグに接続する典型的な例を教えてもらいました...
したがって、私が理解していることから、クラス内のメソッドに特定のパラメーター署名を持つメソッドがあり、より多くの (またはより少ない) パラメーターを必要とするロジックでそれをラップしたい場合は、アダプターパターンを実装する必要があります。
見たすべての例から、これを行う適切な方法は、目的のメソッド シグネチャを持つインターフェイスを実現するアダプター クラスを作成し、採用者をアダプター クラスのメンバーとして保持することです。次に、実現されたインターフェイス メソッドを介して adpotee メソッドを呼び出し、ロジックを入力します。
問題は、採用クラスを 1 つだけ使用する必要がある場合、なぜインターフェイスを使用するのかということです。インターフェイスビットをドロップして、採用者をメンバーとして保持し、「スタンドアロン」メソッドで目的のロジックを実装する方が簡単ではありませんか?
アダプターパターンを有効にするために、ここでインターフェイスメソッドを実現する必要がありますか?
public class PostStatusAdapter
{
public interface IpostStatus
{
void Post(string i_Post, string i_Password);
}
public class UserAdapter : IpostStatus
{
User Adoptee = new User();
void IpostStatus.Post(string i_Post, string i_Password)
{
if (PasswordCorrect(i_Password))
{
Adoptee.PostStatus(i_Post);
}
}
private bool PasswordCorrect(string i_Password) { ... }
}
}