这是否表示接口的解耦和正确使用

本文关键字:解耦 是否 表示 接口 | 更新日期: 2023-09-27 18:32:32

我写了一个简短的程序来测试我对接口和解耦的理解。你能告诉我我的想法是否正确吗?据我了解,当多个类可以实现相同的方法时,接口的抽象方法很有用。然后,解耦允许类不相互依赖。因此,在 ICar 接口中定义的 HonkHorn() 方法由两个类实现。然后,每个类都包含一个附加方法,可用于执行特定于其所在类的操作。我有正确的理解吗?

 public partial class Form1 : Form
{
    // Constructor
    public Form1()
    {
        InitializeComponent();
        SportsCar SportsCar = new SportsCar();
        CheapCar CheapCar = new CheapCar();
        label1.Text = SportsCar.HonkHorn();
        label2.Text = CheapCar.HonkHorn();
    }

}
interface ICar
{
    string HonkHorn();
}
public class SportsCar : ICar
{
    public string HonkHorn()
    {
        return "Horn honked on Sports Car";
    }
    public void DetermineHighestSpeed()
    { 
        // Calculation to determine highest speed on a sports car
    }
}
public class CheapCar : ICar
{
    public string HonkHorn()
    {
        return "Horn honked on Cheap Car";
    }
    private void FindRustSpots()
    { 
        // Algorithm to find rust spots
    }
}

这是否表示接口的解耦和正确使用

您正确使用了界面。但是您的样本并不代表解耦,即使这是一个良好的开端。您在示例代码中描述的是通过接口的多态性。

静态类型语言中耦合的定义是当一个类的实现需要编译另一个类时。

可以使用 ICar 接口和依赖项反转原则使示例类 Form1 完全解耦。(http://butunclebob.com/ArticleS.UncleBob.PrinciplesOfOod)