c#类强制至少一个关系

use*_*076 3 c# class .net-4.0

这应该是一个简单的问题.

假设我有航空公司和航班.一家航空公司可以有多个航班.每次航班应与一家航空公司联系.

如何创建类来模仿此行为?我想出的如下:

    public class Airline
{
    private string Name;
    private string Description;
    private List<Flight> Flights;
    public Airline(string Name, string Description)
    {
        this.Name = Name;
        this.Description = Description;
    }
    public void AddFlight(Flight Flight)
    {
        if (!this.Flights.Contains(Flight))
        {
            this.Flights.Add(Flight);
        }
    }
    public void RemoveFlight(Flight Flight)
    {
        this.Flights.Remove(Flight);
    }
}

public class Flight
{
    private string No;
    private string Time;
    private Airline Airline;

    public Flight(Airline Airline, string No, string Time)
    {
        this.No = No;
        this.Time = Time;
        this.Airline = Airline;
    }
}
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法来完成这项任务?我不喜欢的是,当我创建一个航班时,我必须添加一个航空公司,然后我必须打电话给Airline.AddFlight以便将它与我的航空公司联系起来.此外,我正在寻找代码或其他任何可以改进的问题.

Arn*_*rne 5

为什么不在施工时将航班添加到航空公司:

    public Flight(Airline Airline, string No, string Time)
    {
        this.No = No;
        this.Time = Time;
        this.Airline = Airline;
        Airline.AddFlight(this);
    }
Run Code Online (Sandbox Code Playgroud)