You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

通过定义结构实现依赖倒置与依赖注入,计算各车型变体价格

车辆价格计算的三种实现方案

我们需要基于以下车辆分类结构,实现各车型变体的价格计算功能:

  • 自行车(Bike):运动款(sport)、标准款(standard)
  • 汽车(Car):运动款(sport)、标准款(standard)、电动款(electric)
  • 卡车(Truck):迷你卡车(Mini Truck)、重型卡车(Power Truck)
  • 巴士(Bus):迷你巴士(Mini Bus)、空调巴士(AC Bus)

以下是三种不同的实现方式示例:

示例1:使用构造函数重载

public interface IVehicle
{
    public void CalculatePrice();
}

public class CalculatePrice : IVehicle
{
    public void CalculatePrice() { }
}

public class Bike_1
{
    public readonly IVehicle Vehicle;
    public Bike_1(string model)
    {
        if (model == "STANDARD")
        {
            Console.WriteLine("标准款自行车价格为10万卢比");
        }
        else if (model == "SPORTS")
        {
            Console.WriteLine("运动款自行车价格为20万卢比");
        }
    }
}

示例2:使用重写函数与继承

public class Vehicle_3
{
}

public class Bike_3 : Vehicle_3
{
    public virtual void CalculatePrice_3() { }
}

public class Sports_3 : Bike_3
{
    public override void CalculatePrice_3()
    {
        base.CalculatePrice_3();
        Console.WriteLine("运动款自行车价格为20万卢比");
    }
}

public class Standard_3 : Bike_3
{
    public override void CalculatePrice_3()
    {
        base.CalculatePrice_3();
        Console.WriteLine("标准款自行车价格为10万卢比");
    }
}

示例3:使用接口

public class Vehicle_4
{
}

public interface IVehicle_4
{
    void CalculatePrice_4();
}

public class Bike_4 : IVehicle_4
{
    public virtual void CalculatePrice_4() { }
}

public class Sports_4 : Bike_4
{
    public override void CalculatePrice_4()
    {
        base.CalculatePrice_4();
        Console.WriteLine("运动款自行车价格为20万卢比");
    }
}

public class Standard_4 : Bike_4
{
    public override void CalculatePrice_4()
    {
        base.CalculatePrice_4();
        Console.WriteLine("标准款自行车价格为10万卢比");
    }
}

内容的提问来源于stack exchange,提问作者jagjot singh Wadali

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 11:00:55