donaricano-btn

Java8 - 함수형인터페이스 그리고 람다의 활용


1. 실행 어라운드 패턴에 적용

- 데이터베이스의 파일 처리의 경우 자원 오픈, 처리, 자원 클로즈의 절차를 갖는다. 

- 실제 자원을 처리하는 코드가 설정과 정리과정 사이에 존재 한다면 이를 실행 어라운드 패턴이라 부른다.


2. 함수형 인터페이스를 이용해서 동작 전달

1) 함수형 인터페이스란?

- 정확히 하나의 추상 메서드를 지정하는 인터페이스이다.(Comparator, Runnable)

2) BufferedReaderProcessor.class

 

3) 실행어라운드 패턴 수정

 


3. 람다 전달

 


블로그 이미지

리딩리드

,
donaricano-btn

Java8 - 동작파라미터화 (predicate 활용)


1. 문제

- 사과 리스트 중에 150 그램 이상의 빨간 사과를 찾아라


2. 기존 자바의 필터링

- 색상이 빨간색 사과만 골라내서 담는다.

- 그러나 추가적으로 요구사항이 생길 경우 일일이 변경해야 한다.


3.  디자인 패턴을 이용한 필터링

1) filterApple 메소드

2) interface - predicate 사용

3) implements 

- 기존 자바의 필터링보다 유연하게 대처 가능하다. 그러나 interface 를 따로 만들어야 한다는 번거로움이 있다.


4. 익명클래스 사용한 필터링

1) filterApple

- 익명클래스 사용하면 간결하다. 그러나 가독성이 떨어져 한눈에 보기 힘들다.


5. 람다 표현식 사용

- 간결해졌다.


6. 리스트의 추상화와 람다를 이용한 필터링

1) interface

2) filter() 

3) 사용

- 추상화를 통하여 간결함을 물론 다양한 형태를 필터링 할 수 있다.





블로그 이미지

리딩리드

,
donaricano-btn

럼복(lombok) @Data 사용


1. @Data

- @toString, @Getter/@Setter, @EqualsAndHashCode, @RequiredArgsConstructor의 특징을 포함한 간편한 애노테이션이다. 

- POJO를 만드는데 이상적이다.

- callSuper, includeFieldNames, exclude의 파라미터들을 @Data와 사용할 수 없다.

- 생성되는 모든 getter/setter 는 public 으로 선언된다.

- 만약 특정 변수를 따로 관리하기 위해선 @Setter를 선언하고 AccessLevel 파라미터를 추가한다.

- staticConstructor파라미터를 이용하여 private한 생성자를 만들고 새로운 인스턴스를 반환하는 static 메소드를 만든다.


2. 럼복사용


'Back-End > Lombok' 카테고리의 다른 글

[Lombok] 롬복(lombok) val 사용하기  (0) 2018.01.30
블로그 이미지

리딩리드

,
donaricano-btn

롬복(lombok) val 사용하기



1. val 이란?

- 간편한 final 지역 변수 선언

- val 을 이용하여 선언 할 때 초기화 표현을 꼭 작성해야 한다. 그리고 이를 통해 val 타입을 유추할 수 있다.

- foreach 루프를 이용해서 사용 가능하다.


2. val 사용하기

1) lombok val 사용
    

2) 일반 자바

   

'Back-End > Lombok' 카테고리의 다른 글

[lombok] 럼복(lombok) @Data 사용  (0) 2018.01.31
블로그 이미지

리딩리드

,