我下面的代码是取消产品请求。产品也有子产品。如果根或子产品的验证中存在错误,则取消唯一根。如果完全没有错误,请取消root及其子产品。如何改善下面的代码
private void cancel(ProductCancelRe root){
root.validateProduct(root);
Errors errors = root.getErrors();
List<ProductCancelRequest> list = null;
if(root.hasSubProducts){
list = // some function to getProductCancelRequest for sub products
errors.addErrors(getErrorsForSubProducts(list)
}
if(errors.size == 0){
cancelProduct(root);
if(root.hasSubProducts()){
for(ProductCancelRequest r : list){
cancelRoot(r); // cancel subProducts also if bo errors
}
}
}
else{
cancelProduct(root); // if errors cancel only root product
}
}
答案 0 :(得分:2)
cancelProduct(root)
,因此只需将其放在顶部即可。private void cancel(ProductCancelRe root) {
root.validateProduct(root);
Errors errors = root.getErrors();
List<ProductCancelRequest> list = null;
if(root.hasSubProducts) {
list = // some function to getProductCancelRequest for sub products
errors.addErrors(getErrorsForSubProducts(list));
}
cancelProduct(root);
if(errors.size == 0 && root.hasSubProducts) {
for(ProductCancelRequest r : list) {
cancelRoot(r); // cancel subProducts also if bo errors
}
}
}
答案 1 :(得分:0)
使代码更易于阅读的一种方法是在代码编辑器中添加更多/更好的颜色。 其他方法包括:添加空行,注释,空格和缩进。
某些编辑器具有向代码添加空格的功能。例如,Visual Studio会按照以下顺序清理代码“ Ctrl + K,Ctrl + D”。
随着时间的流逝,您将学到更多的东西。
private void cancel(ProductCancelRe root)
{
root.validateProduct(root);
Errors errors = root.getErrors();
List<ProductCancelRequest> list = null;
//adding values to 'list'
if(root.hasSubProducts)
{
//some function to getProductCancelRequest for sub products
list = errors.addErrors(getErrorsForSubProducts(list)
}
if(errors.size == 0)
{
cancelProduct(root);
if(root.hasSubProducts())
{
for(ProductCancelRequest r : list)
{
cancelRoot(r); // cancel subProducts also if bo errors
}
}
}
else
{
cancelProduct(root); // if errors cancel only root product
}
}