私はいくつかの太いインターフェイスがあるとします。これは変更できません。また、私はいくつかのメソッドを使用したいと思ういくつかのクライアントクラスを持っています。どのようにインターフェイスの分離原理を達成するために、この状況のためのアダプタパターンを実装することができますか?adapternパターンを実装することでfatインターフェイスをどのように分離できますか?
1
A
答えて
9
これは非常に簡単です。
interface IAmFat
{
void Method1();
void Method2();
...
void MethodN();
}
interface IAmSegregated
{
void Method1();
}
class FatAdapter : IAmSegregated
{
private readonly IAmFat fat;
public FatAdapter(IAmFat fat)
{
this.fat = fat;
}
void IAmSegregated.Method1()
{
this.fat.Method1();
}
}
0
アダプターは本当に適切なツールではありません。 2つの互換性のないインターフェースを互いに適合させることによって話すことができるように設計されています。この場合、エンドユーザーに異なる機能のサブセットを公開する必要があります。この場合、facadeを使用します。
class Fat{
public string A();
public int B();
.
public void EatMeat()
.
public void Z();
}
class JennyCraig{
private Fat f = Fat();
public string A(){
return f.A();
}
public void Z(){
return f.Z();
}
class Atkins{
public Fat f = Fat();
public void EatMeat(){
return f.EatMeat();
}
}
関連する問題
- 1. 実装からインターフェイスを分離する方法
- 2. クラスが多くのインターフェイスを実装していることをどのようにテストできますか?
- 3. どのようにIEnumeratorインターフェイスを実装しますか?
- 4. IronPythonでインターフェイスを実装するにはどうすればよいですか?
- 5. GLSLでポイントからラインセグメントまでの距離をどのように実装できますか?
- 6. ZedGraphでどのようにスプリットペインを実装できますか?
- 7. どのようにC#でIRandomAccessStreamを実装できますか?
- 8. DelphiでLevenshtein距離をどのように実装しますか?
- 9. この式をJavaでどのように実装できますか?
- 10. これでバイナリツリーをどのように実装しますか?
- 11. c#app:JSONインターフェイスを実装することは可能ですか?
- 12. どのようにアコーディオンスタイルのメニューを実装できますか?
- 13. インターフェイスをC#で.hファイルに実装できますか?
- 14. ASP.NET/UserControls:「コントローラ」を「ビュー」からどのように分離できますか?
- 15. どのように私は(トレンドバブル)を実装することができ
- 16. これはどのように実装するのですか?
- 17. どのようにしてRazor Viewsを分離できますか?
- 18. Clojureはどのように問題の分離を起こすのですか?
- 19. TypeScriptで実装されたインターフェイスでコンストラクタオーバーロードを実行するにはどうすればよいですか?
- 20. チェックピクセル私はPHPでの画素パターンを確認することができますどのようにパターン
- 21. Linq2Sqlクラスにインターフェイスを実装できますか?
- 22. どのように再帰正規表現をPythonで実装することができますか?
- 23. gpsのリスナーはどのように実装できますか?
- 24. リスナーを表すインターフェイスのメソッドにデフォルトの実装を追加することはできますか?
- 25. インターフェイスはどのように機能を実装していますか?
- 26. デザインパターン - インターフェイス分離
- 27. Grailsサービスの実装からインタフェースを分離するには?
- 28. 数式ファクトリはどのように実装できますか?
- 29. 以下はどのように実装できますか?
- 30. パラメータを2つのインターフェイスに実装することは可能ですか?
+1誰もがしたいんが(そのことについてまたは隔離)脂肪ことです:( – jgauffin
だから私はまたIAmFatを実装するクラスを必要とし、そのインスタンスはFatAdapterコンストラクタに注入されるのですか? –
いいえ、あなたの脂肪の場合クラスに静的メソッドがある場合は、それをまったく注入する必要はありません。単純に 'FatAdapter'から直接呼び出すことができます。 – Steven