通过定义结构实现依赖倒置与依赖注入,计算各车型变体价格
车辆价格计算的三种实现方案
我们需要基于以下车辆分类结构,实现各车型变体的价格计算功能:
- 自行车(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
相关产品推荐
相关产品推荐

