0

多くの本や記事では、インターフェースに関するそのような定義を見るかもしれません。インターフェースは、消費者(呼び出し元)とプロバイダー(呼び出し先)の間の「契約」または合意です。しかし、残念ながら、呼び出し元クラスとは何かを説明する明確な例はありません。または、呼び出し先クラスとは何であり、インターフェイスを介して相互に通信する方法を示します。

この観点から、呼び出し元(コンシューマー)と呼び出し先(プロバイダー)という用語について混乱しています。インターフェイスを定義し、クラスがそのインターフェイスを実装していることを知っています。実装者クラスは呼び出し元と見なされます。呼び出し、呼び出し先がインターフェイスをどのように使用するかについては、誰でもこの用語をわかりやすく説明し、その明確な例を示すことができます。

どんな助けでも大歓迎です。

4

3 に答える 3

2

インターフェイスを実装するのは呼び出し先です。インターフェイスの実装を提供するからです。消費者は、呼び出し先のオブジェクトを使用する人であるため、呼び出し元と呼びます。

編集

pulbic interface IPlugin
{
    double Calculate(double d1, double d2);
}

public class WebConnectPlugin: IPlugin
{
   public double Calculate(double d1, double d2){ // some code}
}

public class DBConnectPlugin: IPlugin
{
   public double Calculate(double d1, double d2){ // some code}
}

そしてコードのどこか:

public class CallerIDE
{
   IPlugin plugin= null; 


   public void DoSomething()
   {
      contractor = GetPlugin();
      double value = contractor.Calculate(10.3456, -3.546456);
   }

   private IPlugin GetPlugin()
   {
      return new WebConnectPlugin();

      return new DBConnectPlugin(); //based on some logic
   }

}
于 2012-04-07T07:39:15.340 に答える
2

学校は多くの個人が来て勉強する場所です。すべての個人は異なる学習方法を持っています。

学校には1つのルールがあります:入ってくる個人は学習可能でなければなりません。

学校は、個人が学習可能でない場合、それは彼らに教えることができず、したがって
彼らは勉強することができないと確信しています。

すべてのINDIVIDUALはILEARNABLEインターフェースを実装しています

public  class INDIVIDUAL : ILEARNABLE //this is provider class as it provides implementation of interface.
{

    LEARN()
     {
        //WAY OF LEARNING IS MENTIONED HERE...
     }
}

学校はTeach()と呼ばれるメソッドを通してそれらを教えます

class SCHOOL  // This is consumer class -
{
   void Teach (ILEARNABLE  anyone)
   {
     ...     
     anyone.LEARN();
     ... some code...
   }

}

ここで学校は、ilearnableインターフェースを実装している限り、誰が個人であるかを心配する必要はありません。

于 2012-04-07T18:28:27.080 に答える
0

呼び出し元は、インターフェイスを実装するものを呼び出すコードになります。Calleeは、インターフェースを実装するオブジェクトになります。人々がこの用語を使用することはめったにありませんが。

(Javaに触発された)擬似コードの例を次に示します。

interface readable {
    function read();
}

//callee
class book implements readable {
    function read() {
        print this.text;
    }
    //other implementation code goes here
}

//caller
define readable b = new book();
b.read();
于 2012-04-07T07:38:19.303 に答える