개발자의 오르막
SW 심화과정 D-5 본문
# List 컬렉션에 String 값들을 저장해서 json 형태로 출력하라
- 하나도 없을 때에는 "[]" 모양이 나와야 함.
- apple만 있을 때에는 "['apple']"
- apple, banana "['apple', 'banana']" ...
- collectionString 은 static
# 랜덤으로 출력
# commandPattern 과 Annotation 비교
* 1번
- command pattern
하나의 인스턴스에 특정 함수들을 순서대로 호출하여 동작시키는 패턴
- 이 특정 함수들을 클래스로 생성하여 동작한다.
- 인터페이스로 정의한 ICalc의 execute 함수를 호출하면 하나의 인스턴스
로 다른 클래스들을 호출할 수 있다.
- 이후 PrintStars 라는 빈 인터페이스를 정의하고,
- command pattern 객체 중 사용하고자 하는 함수에 PrintStars를
implements를 한다.
- 이후 instaneceof를 통해 비교할 때, PrintStars를 상속받는 클래스들만
선택적으로 특정 조건을 실행시킬 수 있다.
*2번
- 1번에서 commandPattern에서 기본적으로 동작하는 객체는 건들지 않
은 채, 선택적으로 사용하고자 하는 클래스를 선택한 기능을
사용하기 쉽게 구현한 것이 어노테이션 개념이다.
- PrintStars를 @interface 로 정의함으로써, 어노테이션 기능을 입히고자
하는 부분을 일일이 implements 할 수고를 덜어준다. (같은 패키지 내)
- 클래스가 아닌 변수 및 함수에 선택적으로 어노테이션을 붙임으로써
활용도를 증가시켰다.
- 1번에서 PrintStars를 상속받는 클래스를 조사할 때 instanceof를 활용한
부분처럼 어노테이션에서는 mtd.getAnnotation(PrintStars.class)를 통해
어노테이션 된 부분들을 조사하여 선택적으로 특정 조건을 실행한다.