際際滷

際際滷Share a Scribd company logo
(    )         ;'.
    Strategy

               @daisuke_m
         2011/04/25
? @daisuke_m
? @j5ik2o
?
? Java
? Jiemamy
? Apache Mahout
Strategy
?
?
?
?    (   )
             ★
?   ´
http://ja.wikipedia.org/
wiki/Strategy_
"   "
? java.io.File
"   "
? java.io.File
"   "
? java.io.File
"   "
? java.io.File
"   "
? java.io.File
File
?´
 ?                     ´

 ?
 ?                         ´

?   file1, file2, file10   ´
Strategy
? case1 :
 ?
? case2 : if   elseif   elseif´

 ?
/* 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 ...
  }
}
Strategy

? case 3 :       (   )

 ?
? case 4 :
 ?
java-ja 及1指 チキチキ〆( bェb)?;'.、ゴフッ〇 - Strategy
java-ja 及1指 チキチキ〆( bェb)?;'.、ゴフッ〇 - Strategy
java-ja 及1指 チキチキ〆( bェb)?;'.、ゴフッ〇 - Strategy
java-ja 及1指 チキチキ〆( bェb)?;'.、ゴフッ〇 - Strategy
java-ja 及1指 チキチキ〆( bェb)?;'.、ゴフッ〇 - Strategy
?"   "
Strategy
?
    ?
?
    ?
    ?        ★
    ? SQL   ★ RDBMS
?
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);
      }
    }
}
/*          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);
     }
}
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  ( ?Д` )

More Related Content

java-ja 及1指 チキチキ〆( bェb)?;'.、ゴフッ〇 - Strategy

  • 1. ( ) ;'. Strategy @daisuke_m 2011/04/25
  • 2. ? @daisuke_m ? @j5ik2o ? ? Java ? Jiemamy ? Apache Mahout
  • 4. ? ´
  • 6. " " ? java.io.File
  • 7. " " ? java.io.File
  • 8. " " ? java.io.File
  • 9. " " ? java.io.File
  • 10. " " ? java.io.File
  • 11. File ?´ ? ´ ? ? ´ ? file1, file2, file10 ´
  • 12. Strategy ? case1 : ? ? case2 : if elseif elseif´ ?
  • 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 ... } }
  • 14. Strategy ? case 3 : ( ) ? ? case 4 : ?
  • 20. ?" "
  • 21. Strategy ? ? ? ? ? ★ ? SQL ★ RDBMS ?
  • 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 ( ?Д` )