【问题标题】:Interface communicates between classes接口在类之间进行通信
【发布时间】:2015-04-26 13:31:05
【问题描述】:

接口在两个类之间进行通信是否正确?就像它可以将信息从 B 类发送到 C 类?两个类都继承了相同的接口。

这个例子我读过

让我们以你的“手”为例。 “手”是一类。您的身体有两个“手”类型的对象,分别名为“左手”和“右手”。它们的主要功能由一组通过您的肩膀(通过接口)发送的电信号控制或管理。所以肩膀是你的身体用来与你的手互动的接口。手是一个结构良好的类。通过稍微改变它的属性,这只手被重新用于创建左手和右手。

这只是指定接口控制或管理类,我同意这一点但不知何故我知道接口可以将数据从一个类传输到另一个类,所以如果我们这样定义接口是否正确或说我们为此目的使用接口

Interface创建两个类之间的通信,例如ClassA和ClassB中继承的Interface Iabc,则可以将ClassA的信息发送给ClassB。

public interface  Interface1
{
    void  Method1(string msg);
     void Method2(string msg1 ,string msg2);
}
 public static class  HelperClass
 {
     public static void Method1(Interface1 obj ,string msg)
     {
         obj.Method1(msg);
     }

     public static void Method2(Interface1 obj,string msg1, string msg2)
     {
         obj.Method2(msg1,msg2);
     }
 }
  static void Main(string[] args)
    {
        var Car = new Vehcile();
        var HS = new Person();
        Car.per= "Car Clss";
        HS.per = "HS Clss";
        HelperClass.Method1(Car, Car.per);
        HelperClass.Method1(HS, HS.per);
        HelperClass.Method2(Car, Car.per, HS.per);
        HelperClass.Method2(HS, HS.per, Car.per);
        Console.ReadKey();
    }

     public class Person : Interface1
 {

    public String per;

     void Interface1.Method1(string msg)
    {
        Console.WriteLine(msg);
    }

    void Interface1.Method2(string msg1, string msg2)
    {
        Console.WriteLine("Person Class" + msg1 + " " + msg2);
    }
}

 class Vehcile : Interface1
{
    public String per;

     void Interface1.Method1(string msg)
    {
        Console.WriteLine(msg);
    }

    void Interface1.Method2(string msg1, string msg2)
    {
        Console.WriteLine("Vehcile Class" + msg1 + " " + msg2);
    }
}

【问题讨论】:

    标签: c# oop interface


    【解决方案1】:

    说接口在两个类之间进行通信对吗?

    我不会这样定义接口。我会看一个像绑定合同这样的界面。合同规定:“任何实现此接口的人,都必须能够执行合同定义的任何操作。”

    例如:

    public interface IHand
    {
        void Shake(IHand otherHand);
    }
    
    public class Hand : IHand
    {
        public void Shake(IHand otherHand)
        {
            Console.WriteLine("Shook the other hand");
        }
    }
    

    IHand是一个接口,它声明了一个名为Shake的方法,该方法接收IHand的另一个对象。任何实现我们接口的类都必须提供一个名为Shake 的方法,它会做一些事情。

    在这个特定的示例中,我们的Hand 类在每次与另一只手握手时都会写入控制台。

    通过接口,我们可以创建抽象。这意味着,我们可以依赖仅合同,而不是依赖具体的类(例如Hand)。这意味着,任何实现IHand 的对象对我们来说都很好,因为可以保证他会有一个我们可以调用的Shake 方法。 Shake 方法内部发生的事情超出了我们的范围,我们通常并不关心。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-02
      • 2019-07-11
      • 1970-01-01
      • 2023-03-10
      • 2021-03-14
      相关资源
      最近更新 更多