假设我有一个编辑框,在MFC或Win32或...上都没有关系
出于某种原因,我只需要接受字母字符即可进行编辑,这意味着在“ a z”范围内。
所以我可以使用新的proc子类化编辑,一切都很好。
但是有时我使用带有默认proc的编辑,但是我使用一些逻辑来处理输入,例如:
bool isValid = true;
for(auto i(0); i != strlen(myEditBuffer); i++){
if(!isalpha(myEditBuffer[i]){
isValid = false;
break;
}
}
因此,如上所示,我从编辑中获得了全部内容,并使用逻辑来确定其是否有效。
答案 0 :(得分:1)
我的意思是性能,速度。
到那时,您实际上可能已经成为过早优化的受害者。除非您确定应用程序的瓶颈是例如逻辑中的for循环,否则您将在错误的位置寻找效率提高。
这与可读性和维护有关。
您应该考虑哪种方法对您的代码读者更好(将来可能是您!)。拥有高可读性的代码确实也使维护变得更加容易,因为下一个人会更容易理解发生了什么。
哪个是更好的子类或处理逻辑?
您的选择。考虑什么更适合您的应用程序并继续努力。
例如,如果应用程序使用各种编辑器(一个用于字母数字输入,一个用于数字输入,一个仅接受字母,一个仅接受特殊字符等等),那么具有一个类编辑器以及几个子类alphanumericalEditor,numericEditor等,每个子类都将从该类继承。