重构代码,使基数 class 仅包含一个成员 common

Refactoring code to have base class with just a member common

public class AStreamManager
{
    public IVehicle Vehicle { get; set; }

    public string AIp { get; set; }
    public int APort { get; set; }

    public delegate NetworkStream ConnectToAStream(string host, int port);

    public AStreamManager(IVehicle vehicle, string IP, int Port)
    {
        Vehicle = vehicle;

        AIp = IP;
        APort = Port;
    }

    public NetworkStream ConnectToVehicleAStream(ConnectToAStream conn)
    {
        return conn(AIp, APort); ;
    }
}

public class BStreamManager
{
    public IVehicle Vehicle { get; set; }

    public string BIp { get; set; }
    public int BPort { get; set; }

    public delegate NetworkStream ConnectToBStream(string host, int port);

    public BStreamManager(IVehicle vehicle, string IP, int Port)
    {
        Vehicle = vehicle;

        BIp = IP;
        BPort = Port;
    }

    public NetworkStream ConnectToVehicleBStream(ConnectToBStream conn)
    {
        return conn(BIp, BPort); ;
    }

}

我有两个 classes AStreamManagerBStreamManager。正如你在上面看到的,有一个 IVehicle 类型的成员变量 Vehicle 在这些 class 中是通用的。 这是否有意义,我可以重构为将“IVehicle Vehicle”移动到基础 class 吗?

这个问题对我来说似乎很假设。看着你的 classes,我真的看不出它们存在的理由。您有 AIpBIp,但这些显然是 IP 地址,因此拥有两个不同的属性是没有意义的。我只是有一个 StreamManager class 就是这样。