실전 자바 소프트웨어 개발

3장 주요 내용 정리

최-코드 2024. 5. 26. 17:39

개방/폐쇄 원칙 : 코드베이스에 유연성을 추가하고 유지보수성을 개선하는데 도움을 주는 SOLID 원칙 중 하나이다. 이 원칙을 적용하면 기존의 코드를 수정하지 않고도 동작을 확장할 수 있다.(추가하는 경우는 상관X) 이는 함수형 인터페이스와 람다 표현식을 이용하여 구현할 수 있다. 예를 들어 조건이 주어지고 이에 맞춰 검색을할 때 사용할 수 있다.

cf)함수형 인터페이스 : 한 개의 추상 메소드를 포함하는 인터페이스를 말한다. @FunctinalInterface 애너테이션을 이용하면 인터페이스이 의도를 명확히 표현할 수 있다. 이때 1개의 함수만 가질 수 있다.

cf)람다 표현식 : 이름없이 인터페이스 구현 객체를 코드 블록 형태로 전달할 수 있게 해준다.

 

개방/폐쇄 원칙 예시 :

@FunctionalInterface
public interface BankTransactionFilter {
    boolean test(BankTransaction bankTransaction);
}

 public List<BankTransaction> findTransactionsGreaterThanEqual(final int amount) {
        return findTransactions(bankTransaction -> bankTransaction.getAmount() >= amount);
}

public List<BankTransaction> findTransactions(final BankTransactionFilter bankTransactionFilter) {
        final List<BankTransaction> result = new ArrayList<>();
        for (final BankTransaction bankTransaction : bankTransactions) {
            if (bankTransactionFilter.test(bankTransaction)) {
                result.add(bankTransaction);
            }
        }
        return result;
    }
}