본문 바로가기
728x90

람다6

9장. 리팩터링, 테스팅, 디버깅 이번 장에서는 기존 코드를 이용해 새로운 프로젝트를 시작하는 상황을 가정한다. 그 후 람다를 이용해 가독성과 유연성을 높이면서 기존 코드를 리팩토링 하는 방법을 소개한다. 가독성과 유연성을 개선하는 리팩터링 람다, 메서드 참조, 스트림 등을 이용해 가독성이 높고 유연한 코드로 리팩터링 하는 과정을 살펴보자 코드 가독성 개선 코드 가독성이 개선되면 다른 사람이 코드를 이해하기 쉬워지고 유지보수 할 수 있게 된다. 자바 8의 새로운 기능을 사용하면 코드가 간결하면서도 이해하기 쉬워진다. 익명 클래스를 람다 표현식으로 리팩터링하기 추상 메서드를 구현하는 익명 클래스를 람다로 리팩터링 할 수 있지만 모든 경우에 적용할 수 있는 것은 아니다. 다음과 같은 경우 람다로 변환할 수 없다. 1. 익명 클래스에서 thi.. 2022. 3. 17.
Item 42. 익명 클래스보다는 람다를 사용하라 예전에는 자바에서 함수 타입을 표현할 때 추상 메서드를 하나만 담은 인터페이스를 사용했고 이런 인터페이스의 인스턴스를 함수 객체(function object)라 해서, 특정 함수나 동작을 나타내는대 사용했다. 함수 객체를 만드는 방식으로는 익명 클래스를 주로 사용했다. 하지만 익명 클래스는 너무 길기 때문에 함수형 프로그래밍에 적합하지 않았다. 자바 8에 와서야 람다가 도입되 함수 객체를 람다를 통해 짧은 길이로도 만들 수 있게 되었다. 람다는 함수나 익명 클래스와 개념은 비슷하지만 코드는 훨신 간결하다. 람다의 매개변수와 반환값은 컴파일러가 타입 추론을 사용해 추론하기 때문에 통상적인 상황에서는 타입을 명시하지 않아도 된다. 그럼에도 타입을 명시해야 코드가 더 명확할 때에는 타입을 명시해야 한다. 람다.. 2022. 3. 12.
3장. 람다 표현식 동작 파라미터화를 이용하면 더 유연하고 재사용할 수 있는 코드를 만들 수 있다. 익명 클래스로 다양한 동작을 구현할 수 있지만 코드가 깔끔하지 않다. 깔끔하지 않다는 것은 실전에 적용하는 것을 막는 요소다. 그에 반해 람다는 익명 클래스처럼 이름이 없는 함수면서 메서드를 인수로 전달할 수 있고 코드 역시 깔끔하다. 이번 장에서는 람다에 대해 다룬다. 람다란 무엇인가? 람다 표현식은 메서드로 전달할 수 있는 익명 함수를 단순화한 것이다. 람다 표현식에는 이름은 없지만, 파라미터 리스트, 바디, 반환 형식, 예외 리스트를 가질 수 있다. 람다 특징은 다음과 같다. 1. 익명: 람다는 이름이 없다. 따라서 구현해야 할 코드에 대한 걱정이 준다. 2. 함수: 람다는 메서드처럼 특정 클래스에 종속되지 않기 때문에.. 2022. 2. 14.
2장. 동작 파라미터화 코드 전달하기 소비자 요구사항은 항상 바뀐다. 따라서 변경에 대한 비용을 최소화 하고 기능 추가가 용이해야 한다. 동작 파라미터화(behavior parameterization)를 사용하면 바뀌는 요구사항에 효과적 대응이 가능하다. 동작 파라미터화란 아직은 어떻게 실행할 것인지 결정하지 않은 코드 블록을 의미한다. 이 코드 블록의 실행을 나중으로 미뤄진다. 따라서 코드 블록에 따라 메서드의 동작이 파라미터화 된다. 동작 파라미터화 사과를 무게 또는 색으로 필터하는 기능이 있다고 해보자. 이 기능은 다음과 같이 구현될 수 있다. 1 2 3 4 5 6 7 8 9 10 11 12 13 public static List filterAplles(List inventory, Color, color, int weight, bool.. 2022. 2. 13.
728x90