FizzBuzz/Java: Difference between revisions
Content added Content deleted
No edit summary |
|||
Line 105: | Line 105: | ||
; |
; |
||
} |
} |
||
}</lang> |
|||
=== OO style === |
|||
<lang java>public class FizzBuzz { |
|||
public static void main(String[] args) { |
|||
SoundMakerGroup soundMakerGroup = new SoundMakerGroup(new SoundMaker(3, "Fizz"), new SoundMaker(5, "Buzz")); |
|||
for (int i = 1; i <= 100; i++) { |
|||
System.out.println(soundMakerGroup.generate(i)); |
|||
} |
|||
} |
|||
private static class SoundMaker { |
|||
private final int trigger; |
|||
private final String sound; |
|||
public SoundMaker(int trigger, String sound) { |
|||
this.trigger = trigger; |
|||
this.sound = sound; |
|||
} |
|||
public String generate(int i) { |
|||
return i % trigger == 0 ? sound : ""; |
|||
} |
|||
} |
|||
private static class SoundMakerGroup { |
|||
private final SoundMaker soundMakers[]; |
|||
public SoundMakerGroup(SoundMaker... soundMakers) { |
|||
this.soundMakers = soundMakers; |
|||
} |
|||
public String generate(int i) { |
|||
String sound = ""; |
|||
for (SoundMaker soundMakers : soundMakers) { |
|||
sound += soundMakers.generate(i); |
|||
} |
|||
return sound.isEmpty() ? String.valueOf(i) : sound; |
|||
} |
|||
} |
|||
}</lang> |
}</lang> |