Contenu connexe
Plus de 都元ダイスケ Miyamoto (20)
java-ja 第1回 チキチキ『( ゜ェ゜)・;'.、ゴフッ』 - Strategy
- 1. ( ) ;'.
Strategy
@daisuke_m
2011/04/25
- 11. File
•…
• …
•
• …
• file1, file2, file10 …
- 13. /* case1 */
void sort(List<File> target) {
// sort by name
}
/* case2 */
void sort(List<File> target, String type) {
if ("name".equasls(type)) {
// sort by name
} else if ("size".equals(type)) {
// sort by size
} else {
// default ...
}
}
- 22. public interface Strategy {
String process(int i);
}
public class Client {
Strategy strategy;
public Client(Strategy strategy) {
this.strategy = strategy;
}
public void run() {
for (int i = 1; i <= 100; i++) {
System.out.println(strategy.process(i);
}
}
}
- 23. /* FizzBuzz */
public class FizzBuzzStrategy implements Strategy {
public String process(int i) {
if (i % 3 == 0 && i % 5 == 0) return "FizzBuzz";
if (i % 3 == 0) return "Fizz";
if (i % 5 == 0) return "Buzz";
return String.valueOf(i);
}
}
/* Nabeatsu */
public class NabeatsuStrategy implements Strategy {
public String process(int i) {
if (i % 3 == 0 || String.valueOf(i).contains("3")) {
return i + " ( ´Д` ) ";;
}
return String.valueOf(i);
}
}
- 24. Client c = new Client( );
c.run();
new FizzBuzzStrategy() new NabeatsuStrategy()
FizzBuzz Nabeatsu
1 1
2 2
Fizz 3 ( ´Д` )
4 4
Buzz 5
Fizz 6 ( ´Д` )
7 7
8 8
9 ( ´Д` )
Fizz
Buzz 10
11 11
12 ( ´Д` )
Fizz
13 13 ( ´Д` )