디자인패턴 시작하기를 보고 정리하기
public interface SumStrategy {
int get(int N);
}
public class GaussSumStrategy implements SumStrategy{
@Override
public int get(int N){
return (N+1)*N/2;
}
}
public class SimpleSumStrategy implements SumStrategy{
@Override
public int get(int N){
int sum = N;
for(long i = 1; i < N; i++){
sum += i;
}
return sum;
}
}
public class SumPrinter {
void print(SumStrategy strategy, int N){
System.out.printf("The Sum of 1 - %d : ", N);
System.out.println(strategy.get(N));
}
}
public class Main {
public static void main(String[] args){
SumPrinter cal = new SumPrinter();
cal.print(new SimpleSumStrategy(), 10);
cal.print(new GaussSumStrategy(), 10);
}
}
//The Sum of 1 - 10 : 55
//The Sum of 1 - 10 : 55