반응형
동작 파라미터화 코드 전달
동작 파라미터화(behavior parameterization)를 이용하면 자주 바뀌는 요구사항에 효과적으로 대응할수 있음
동작 파라미터화란 아직은 어떻게 실행할 것인지 결정하지 않은 코드 블록
코드블록 -> 프로그램 호출
코드블록 실행은 나중으로 미뤄짐
좋은규칙 '비슷한 코드를 구현한 다음에 추상화하라'
전략 디자인 패턴 (strategy design pattern)
각 알고리즘(전략이라 불리는)을 캡슐화하는 알고리즘 패밀리는 정의해둔 다음에 런타임에 알고리즘을 선택하는 기법
익명 클래스
자바의 지역 클래스 local class(블록 내부에 선언된 클래스)
이름이 없는 클래스
코드의 장황함(verbosity)은 나쁜 특성
장황한 코드는 구현하고 유지보수하는 데 시간이 오래 걸릴 뿐 아니라 읽는 즐거움을 빼앗는 요소
public static ListfilterApples(List inventory, Predicate p){ List result = new ArrayList<>(); for(Apple apple : inventory){ if(p.test(apple)){ result.add(apple); } } return result; }
람다 표현식
자바8의 List에는 sort 메서드가 포함되어 있다
반응형
댓글