Я занимаюсь рефакторингом широко используемого класса.Учитывая, как широко он используется, я намерен создать версию 2 класса.Я буду держать интерфейсы такими же / похожими [я вынужден внести некоторые изменения, иначе это станет уродливым с новыми изменениями], так что переключение со старого класса на новый класс станет легким.И мы можем переключать приложения, использующие старый класс, на новый класс одно за другим.
Теперь я не уверен, как управлять именем / пространством имен в этом случае.
Например:
В настоящее время, скажем, класс находится под пространством имен '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 {
};
}
};
Есть ли лучший подход?
Спасибо!