Какая логика подкласса или дескриптора лучше? - PullRequest
0 голосов
/ 13 ноября 2018

Допустим, у меня есть поле для редактирования. Неважно, находится ли он на MFC или Win32 или ...

Мне по какой-то причине нужно, чтобы редактирование просто принимало буквы алфавита, что означает диапазон"az".

Так что я могу создать подкласс для редактирования с новым proc, и все в порядке.

Но иногда я использую редактирование с его процедурой по умолчанию, но я использую некоторую логику для обработки ввода дляпример:

bool isValid = true;
for(auto i(0); i != strlen(myEditBuffer); i++){
     if(!isalpha(myEditBuffer[i]){
          isValid = false;
          break;
     }
}

Итак, как вы видите выше, я получаю все это от логики редактирования и использую логику, чтобы решить, является ли она действительной или нет.

  • То, что имеет значениеменя в этом случае: который является лучшим подклассом или обрабатывать ввод с использованием логики.Я имею в виду производительность, скорость.

1 Ответ

0 голосов
/ 13 ноября 2018

Я имею в виду производительность, скорость.

В этот момент вы действительно могли стать жертвой преждевременной оптимизации. Если вы не определите узкое место вашего приложения, например, в цикле в вашей логике, то вы ищете повышение эффективности в неправильном месте.

Это все о удобочитаемости и обслуживании .

Вы должны подумать о том, какой подход будет лучше для читателя вашего кода (это может быть вы в будущем!). Наличие кода с высокой читабельностью действительно облегчает обслуживание, поскольку следующий человек легче поймет, что происходит.

Какая логика подкласса или дескриптора лучше?

Ваш выбор. Подумайте, что лучше подходит для вашего приложения, и продолжайте.

Например, если приложение использует различные редакторы (один для буквенно-цифрового ввода, один для числового ввода, один для приема только букв, один для принятия только специальных символов и т. Д.), Тогда имеет смысл иметь редактор классов и несколько подклассов alphanumericEditor, numericEditor и т. д., где каждый подкласс наследуется от Editor.

...