代码之家  ›  专栏  ›  技术社区  ›  liv2hak

重构代码,使基类只包含一个公共成员

  •  -1
  • liv2hak  · 技术社区  · 7 年前
    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); ;
        }
    

    我有两节课 AStreamManager BStreamManager .正如您在上面看到的,有一个成员变量 Vehicle IVehicle 这在这些班级中很常见。 这有意义吗?我可以以这样的方式重构“IVehicle Vehicle”吗?它可以被移动到基类吗?

    1 回复  |  直到 7 年前
        1
  •  2
  •   Gregory Higley    7 年前

    这个问题对我来说似乎很假设。看看你们的课,我真的看不出它们存在的原因。你有 AIp BIp StreamManager 课堂上就是这样。