子类或句柄逻辑哪个更好?
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 都继承自编辑器。
假设我有一个编辑框,在 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 都继承自编辑器。