C :重构管理名称空间
C++: Refactoring managing namespaces
我正在重构广泛使用的类。鉴于它的使用程度很高,我的意图是创建类的版本2。我将保持界面相同/相似(我被迫进行一些更改,否则会随着新的更改而变得丑陋],以便从旧班级转换为新班级变得容易。我们可以使用旧类将应用程序切换到一个新的类。
现在我不确定在这种情况下如何管理名称/名称空间。
eg:
目前,可以说,该类位于名称空间'app'
namespace app {
class Important {
...
};
}
我想保持课堂名称相同或非常相似,以使含义很清楚。
namespace app {
// This looks okay (conveys the meaning), but is ugly.
class Important2 {
...
};
}
namespace app {
namespace v2 {
// I think this will be confusing. It will given a feeling that the v2
// applies to app namespace. There are lot of classes under 'app'
// namespace which are not changed.
class Important {
};
}
};
有更好的方法吗?
谢谢!
我认为您问题的最佳解决方案是使用GOF工厂设计模式,其中您具有接口和许多实现,例如重要,重要2等。
然后,您可以告诉您的消费者很快就会贬值,但是编译器警告
您可以通过简单命名空间别名解决。示例可以在此答案中https://stackoverflow.com/a/41420638/781933,对于 switch On/off 方法(在每个项目基础上驱动迁移)。
)。 )相反,如果您必须经过中间构图而不是完整的替换,则可以采用带有构图和内联命名空间的中间解决方案 。
您可以在Stroustrup的中找到一个特定的版本管理示例
相关文章:
- 为什么两个不同的未命名名称空间可以共存于一个cpp文件中
- 命名空间中具有.h和.cpp文件的类
- 从父命名空间重载类型
- 当在同一名称空间中有两个具有相同签名的函数时,会发生什么
- 在命名空间中定义函数还是限定函数
- 当vector是tje全局变量时,c++中vector的内存管理
- C++:对不存在的命名空间使用命名空间指令
- 通过继承类使用来自不同命名空间的运算符
- 使用命名空间时出现多个定义错误
- OpenGL相机和相机空间转型的困惑
- CUDA内核和数学函数的显式命名空间
- 如何维护资源管理器项目视图中当前可见的项目列表
- 打印第二列时的2d字符矢量打印空间
- 任务管理器 - C/C++ 应用程序 - 分配的地址空间与已用内存
- 是否可以在专用内存空间中分配一个为提升管理共享内存而创建的对象
- C :重构管理名称空间
- 资源管理器在 TILE 视图模式下不显示 shell 命名空间扩展的项目详细信息
- std::线程在用户或内核空间中进行管理
- 用于在 C++ 中管理特定于平台的代码的内联命名空间技术
- 在c++中管理带有属性的大型空间数据集