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>