C#通过抽象工厂模式造车

Natalia ·
更新时间:2024-11-13
· 704 次阅读

可以用抽象工厂模式来造车。

车的品牌有很多,而且车的属性也不少,比如车的类型、排量、门的数量,等等。可以提炼出有关车的一个抽象类:

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# 抽象 抽象工厂模式 工厂模式

需要 登录 后方可回复, 如果你还没有账号请 注册新账号