子类或句柄逻辑哪个更好?

Which is the better Subclass or handle logic?

假设我有一个编辑框,在 MFC 或 Win32 上都没有关系...

出于某种原因,我需要让编辑只接受字母字符,这意味着在 "a z".

范围内

所以我可以使用 new proc 对编辑进行子类化,一切都很好。

但有时我会使用默认过程进行编辑,但我会使用一些逻辑来处理输入,例如:

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

所以如你所见,我从编辑中得到了全部内容,并使用逻辑来决定它是否有效输入。

I mean The performance, speed.

那时,您真的可能是过早优化的受害者。例如,除非您确定应用程序的瓶颈是逻辑中的 for 循环,否则您在错误的地方寻找效率提升。

一切都是关于可读性维护

您应该考虑哪种方法对您的代码 reader 更好(将来可能是您!)。具有高可读性的代码确实也使维护更容易,因为下一个人会更容易理解发生了什么。

Which is the better Subclass or handle logic?

你的选择。想想什么更适合您的应用程序,然后去做。

例如,如果应用程序使用多种编辑器(一种用于字母数字输入,一种用于数字输入,一种只接受字母,一种只接受特殊字符,等等),那么它就有意义了拥有一个 class 编辑器和多个子classes 字母数字编辑器、数字编辑器等,其中每个子class 都继承自编辑器。