我正在尝试为特定的工程应用程序设计一个类库,并且我正在尝试确保我的类和命名空间命名约定有意义。
我有以下情况:
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
...
}
还是保留第一个示例中所示的命名并依赖命名空间中编码的信息以清晰起见?在后一种方法下,我假设我想在使用这个库的代码中使用 alaising 来清晰,对吗?
似乎是多余的:
Vehicle.Car.CarWheel
或者
Vehicle.Truck.TruckEngine
但我也希望有非常描述性和具体的类名。
从哲学上讲,我要问的是在考虑类名是否足够具有描述性时,是否将命名空间作为类名的一部分。