[英]Interface communicates between classes
說兩個類之間的接口通信是對的嗎? 就像它可以從B類發送信息到C類? 這兩個類都繼承了相同的接口。
這個例子我讀過
讓我們以你的“手”為例。 “手”是一個類。 你的身體有兩個“手”類型的物體,名為“左手”和“右手”。 它們的主要功能由通過肩部(通過接口)發送的一組電信號控制或管理。 所以肩膀是你的身體用來與你的手互動的界面。 手是一個設計良好的類。 通過稍微改變它的屬性,手被重新用於創建左手和右手。
這只是指定接口控制或管理類,我同意這一點,但不知怎的,我知道接口可以將數據從一個類轉移到另一個類,所以如果我們定義這樣的接口或說我們使用接口這是正確的目的
接口在兩個類之間創建通信,例如在ClassA和ClassB中繼承的接口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);
}
}
說兩個類之間的接口通信是對的嗎?
我不會這樣定義一個接口。 我會看一個像綁定合同的界面。 合同規定: “任何實現此接口的人都必須能夠執行合同規定的任何行動。”
例如:
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
方法中發生的事情超出了我們的范圍,我們通常並不關心。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.