这篇文章介绍了C#通过抽象工厂模式造车的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
可以用抽象工厂模式来造车。
车的品牌有很多,而且车的属性也不少,比如车的类型、排量、门的数量,等等。可以提炼出有关车的一个抽象类:
public abstract class Car
{
public string Model { get; set; }
public string Engine { get; set; }
public string Transmission { get; set; }
public string Body { get; set; }
public int Doors { get; set; }
public List<string> Accessores = new List<string>();
public abstract void ShowCarInfo();
}
既然是抽象工厂,提炼出一个造车的接口:
public interface ICarFactory
{
Car ProduceCar();
}
写一个Car的派生类:
public class MyCar : Car
{
public MyCar()
{
Model = "型号001";
Engine = "发动机V";
Transmission = "排量1";
Body = "SUV";
Doors = 4;
Accessores.Add("内饰");
Accessores.Add("外饰");
}
public override void ShowCarInfo()
{
Console.WriteLine(Model);
Console.WriteLine(Engine);
Console.WriteLine(Body);
Console.WriteLine("门数量:" + Doors);
Console.WriteLine("包括:");
foreach (var accessory in Accessores)
{
Console.WriteLine("\t{0}", accessory);
}
}
}
MyCar需要一个对应的具体工厂来造车。写一个具体工厂类,实现ICarFactory接口。
public class MyFactory : ICarFactory
{
public Car ProduceCar()
{
return new MyCar();
}
}
在客户端,如果要造车,就找具体工厂就可以了。
static void Main(string[] args)
{
ICarFactory carFactory = new MyFactory();
carFactory.ProduceCar().ShowCarInfo();
Console.ReadKey();
}
总结:
1、需要工厂生产对象的抽象类以及派生类
2、需要一个抽象工厂接口
3、通过抽象工厂造车,必须把所有的细节都设计在代表车的抽象类中,扩展性不好
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对得得之家的支持。如果你想了解更多相关内容请查看下面相关链接
沃梦达教程
本文标题为:C#通过抽象工厂模式造车
猜你喜欢
- user32.dll 函数说明小结 2022-12-26
- .NET CORE DI 依赖注入 2023-09-27
- Unity Shader实现模糊效果 2023-04-27
- Unity3D实现渐变颜色效果 2023-01-16
- 在C# 8中如何使用默认接口方法详解 2023-03-29
- C# 使用Aspose.Cells 导出Excel的步骤及问题记录 2023-05-16
- Oracle中for循环的使用方法 2023-07-04
- c# 模拟线性回归的示例 2023-03-14
- 如何使用C# 捕获进程输出 2023-03-10
- WPF使用DrawingContext实现绘制刻度条 2023-07-04