실전 자바 소프트웨어 개발
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;
}
}