Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我是否可以从这个FizzBuzz风格的pro​;问题?_Java_Refactoring - Fatal编程技术网

Java 我是否可以从这个FizzBuzz风格的pro​;问题?

Java 我是否可以从这个FizzBuzz风格的pro​;问题?,java,refactoring,Java,Refactoring,有人给我下列问题要解决 如果整数可被3整除,则返回字符串“Java” 如果整数可以被3整除,也可以被4整除,则返回 串“咖啡” 如果整数为上述整数之一且为偶数,则将“Script”添加到 绳子的末端。否则,返回字符串“mocha_missing!” 样本输入和输出 Caffinebuzz(1)=>“缺少摩卡咖啡” Caffinebuzz(3)=>“Java” Caffinebuzz(6)=>“JavaScript” Caffinebuzz(12)=>“咖啡脚本” 我的解决办法如下: //

有人给我下列问题要解决

  • 如果整数可被3整除,则返回字符串“Java”
  • 如果整数可以被3整除,也可以被4整除,则返回 串“咖啡”
  • 如果整数为上述整数之一且为偶数,则将“Script”添加到 绳子的末端。否则,返回字符串“mocha_missing!”
样本输入和输出

  • Caffinebuzz(1)=>“缺少摩卡咖啡”
  • Caffinebuzz(3)=>“Java”
  • Caffinebuzz(6)=>“JavaScript”
  • Caffinebuzz(12)=>“咖啡脚本”
我的解决办法如下:

//Class 

public class CoffieScriptGenerator {

    public String caffeineBuzzz(Integer number) {

        if(isDivisbleByThreeAndFour(number))
        {
            if(isEven(number))
            return "CoffeeScript";
            else
            return "Coffee";
        }
        if(isDivisbleByThree(number))
        {
            if(isEven(number))
            return "JavaScript";
            else
            return "Java";
        }
        return "mocha_missing!";


    }

    private boolean isEven(Integer number) {
        return number%2==0; 
    }

    private boolean isDivisbleByThreeAndFour(Integer number) {

        return isDivisbleByThree(number) && number%4==0;
    }

    private boolean isDivisbleByThree(Integer number) {
        return number%3==0;
    }

}

请提供重构和改进的建议,以及我如何在其他模式(如Strategy)的帮助下改进此类嵌套。

解决此类问题的一个好设计模式是从顶部的空字符串开始。然后,当代码向下流动并检查某些条件时,将文本附加到s的末尾然后,当您到达方法的末尾时,您的字符串已经全部生成,您可以简单地返回它


这种设计的优点是方法只有一个出口点(只有一个返回语句).

解决这类问题的一种好的设计模式是从顶部的空字符串开始。然后,当代码向下流动并检查某些条件时,您可以在运行时将文本附加到字符串的末尾。然后,当您到达方法的末尾时,您的字符串已全部生成,您可以简单地返回它


这种设计的优点是您的方法只有一个退出点(只有一个返回语句)。

这是一个称为“FizzBuzz”的类问题有很多答案,都是观点。因为这是一个自以为是的问题,所以它不属于StackOverflow。然而,这是一个很好的问题。你可能会发现你的问题已经解决了。但是,由于每个实现的答案各不相同,您仍然可以在CodeReview上提问。谢谢matthew的建议,我一定会在这里发布,没问题。不过你应该删除这个问题,这样就不会促使其他用户在这个网站上问同样的问题。为了继续学习和改进代码,您应该做任何您想做的项目。在您完成一个项目后,或者当您达到某一点时,您可以将其发布在CodeReview上,并征求改进建议。如果您遇到任何编程问题,如错误,您可以询问StackOverflow。这是一个被称为“FizzBuzz”的类问题,有许多答案,所有这些都是观点。因为这是一个自以为是的问题,所以它不属于StackOverflow。然而,这是一个很好的问题。你可能会发现你的问题已经解决了。但是,由于每个实现的答案各不相同,您仍然可以在CodeReview上提问。谢谢matthew的建议,我一定会在这里发布,没问题。不过你应该删除这个问题,这样就不会促使其他用户在这个网站上问同样的问题。为了继续学习和改进代码,您应该做任何您想做的项目。在您完成一个项目后,或者当您达到某一点时,您可以将其发布在CodeReview上,并征求改进建议。如果您遇到任何编程问题,如错误,您可以询问StackOverflow。谢谢您宝贵的建议,但实际上如何利用这些嵌套if是我所寻找的,因为在常规编码过程中,我在代码中使用了很多if else。请提供一些链接,我可以在其中练习或进行配对编程,并获得改进建议。谢谢您宝贵的建议,但实际上,如何利用这些嵌套的if是我所寻找的,因为在常规编码期间,我在代码中使用了很多if-else。请提供一些链接,我可以在其中练习或进行配对编程,并获得改进建议。