除了一行之外,重构方法基本相同
Refactoring method that is mostly the same except for one line
注意:将测试编辑为x==1
if(x==1) {
statement1();
statement2();
special1();
statement3();
statement4();
else {
statement1();
statement2();
special2();
statement3();
statement4();
}
什么是正确的方式来尽可能减少这种情况。我在考虑制作一个抽象基类(使用一个执行语句1-4的方法),实现一个纯虚拟的特殊方法(执行special1或2),并让子类实现该方法。否则会导致.
Checker myChecker = (x==1) ? Specal1Checker() : Special2Checker();
myChecker.doCheck();
假设x=1
是一个拼写错误,它应该是x==1
,下面是C++中的操作:
bool const descriptive_name = (x == 1);
statement1();
statement2();
if( descriptive_name ) { special1(); } else { special2(); }
statement3();
statement4();
同样在Java中表达这一点只是一个练习。
在发布时,要重构的原始代码是
if(x=1) {
statement1();
statement2();
special1();
statement3();
statement4();
else {
statement1();
statement2();
special2();
statement3();
statement4();
}
相关文章:
- 为不同配置设置MSVC_RUNTIME_LIBRARY的正确方法是什么
- 通过方法访问结构
- 最小硬币更换问题(自上而下方法)
- C++为构建时间获取QDateTime的可靠方法
- 在C#中处理C++指针而不使用unsafe的最佳方法
- 处理多个异常集合的C++方法
- 如果C++类在类方法中具有动态分配,但没有构造函数/析构函数或任何非静态成员,那么它仍然是POD类型吗
- 有什么方法可以遍历结构吗
- 当类在C++中定义时,有什么方法可以"register"类吗?
- C++重构,扩展方法typedef
- 如何使用C 中的模板重构方法
- 重构后,异步调用方法不再有效
- C++ 重构采用 int 或字符串参数的方法
- 有没有一种方法可以重构C#特有的switch语句
- 如何重构容器以直接使用谓词方法
- 除了一行之外,重构方法基本相同
- 有没有一种方法可以将C++11代码重构为C++代码,这些代码可以由能力较弱的编译器编译
- 如何重构冗余的getter/setter方法
- 重构出所有类通用的方法
- 抽象/重构此开关/案例的好方法是什么?