重构代码,使基数 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 AStreamManager
和 BStreamManager
。正如你在上面看到的,有一个 IVehicle
类型的成员变量 Vehicle
在这些 class 中是通用的。
这是否有意义,我可以重构为将“IVehicle Vehicle”移动到基础 class 吗?
这个问题对我来说似乎很假设。看着你的 classes,我真的看不出它们存在的理由。您有 AIp
和 BIp
,但这些显然是 IP 地址,因此拥有两个不同的属性是没有意义的。我只是有一个 StreamManager
class 就是这样。
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 AStreamManager
和 BStreamManager
。正如你在上面看到的,有一个 IVehicle
类型的成员变量 Vehicle
在这些 class 中是通用的。
这是否有意义,我可以重构为将“IVehicle Vehicle”移动到基础 class 吗?
这个问题对我来说似乎很假设。看着你的 classes,我真的看不出它们存在的理由。您有 AIp
和 BIp
,但这些显然是 IP 地址,因此拥有两个不同的属性是没有意义的。我只是有一个 StreamManager
class 就是这样。