这是否表示接口的解耦和正确使用
本文关键字:解耦 是否 表示 接口 | 更新日期: 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)