我有两个不同的命名空间,很多同名的类.我相信一些代码可以更容易理解:
namespace Print.Pdl.PostScript.Operators { public abstract class BaSEOperator : IOperator { // ... } } namespace Print.Pdl.Pcl6.Operators { public abstract class BaSEOperator : IOperator { // ... } }
基本的实现是相同的,因为PostScript和PCL有类似的结构.所以,这两个命名空间最终都有与几个类相同的名称.
我很想做以下事情:
namespace Print.Pdl.PostScript.Operators { public abstract class BasePsOperator : IPsOperator { // ... } } namespace Print.Pdl.Pcl6.Operators { public abstract class BasePclOperator : IPclOperator { // ... } }
…但是,IMHO,这样做是为了打败目的,因为识别中存在冗余.为什么要前缀/更改类名,如果命名空间已经创建了逻辑障碍?
那么,你们有什么想法?我应该保留相同的名称,因为它们在不同的命名空间中,还是应该前缀/更改类名,以便更容易识别源代码,如果有人想要同时使用这两个命名空间,可以避免冲突?
谢谢!
解决方法
诺尔德,
我不认为你应该牺牲建筑以支持可读性.如果您保持相同的类名称,我相信它更直观,因为如果您从PCL切换到PostScript,反之亦然.
如果必须在同一个代码文件中使用这两个类,则为命名空间创建一个别名.很清楚阅读:
using Pcl = Print.Pdl.Pcl6.Operators; using PostScript = Print.Pdl.PostScript.Operators; ... // use PCL Pcl.BaSEOperator.DoSomething(); // Use PostScript PostScript.BaSEOperator.DoSomething();
谢谢,Luciano Bargmann