我正在设计一个特定的工程应用程序的类库,我试图确保我的类和命名空间命名约定有意义。
我面临以下情况:
namespace Vehicle{
class Wheel{...} //base class for Wheel objects
class Engine{...} //base class for Engine objects
...
namespace Truck{
class Wheel: Vehicle.Wheel{...} //Truck specific Wheel object
class Engine: Vehicle.Engine{...} //Truck specific Engine object
...
}
namespace Car{
class Wheel: Vehicle.Wheel{...} //Car specific Wheel object
class Engine: Vehicle.Engine{...} //Car specific Engine object
...
}
...
}
代码将在各个类需要从同一作用域内引用时使用。可能会出现以下情况:
...
Vehicle.Wheel.DoSomething();
Vehicle.Truck.Wheel.DoSomething();
Vehicle.Car.Wheel.DoSomething();
...
在这种情况下,我更好地为这些类命名更具体的名称。
namespace Car{
class CarWheel: Vehicle.Wheel{...} //Car specific Wheel object
...
}
或者按照第一个例子中显示的名称并依靠命名空间中编码的信息来保持清晰度?在后一种方法下,我认为我会想要在使用该库的代码中使用别名以增加清晰度,对吗?
似乎有些冗余:
Vehicle.Car.CarWheel
或者
Vehicle.Truck.TruckEngine
但我也希望有非常具体和描述性的类名。
从哲学上讲,我的问题是在考虑一个类名是否足够描述时,是否将命名空间作为类名的一部分。