스터디/실전 자바 소프트웨어개발(3)
-
3장 입츨굼 내역 분석기 확장판 ( 전반부 )
목표코드베이스에 유연성을 추가하고 유지보수성을 개선하는 데 도움을 주는 개방/폐쇄 원칙(OCP) 을 배워보자언제 인터페이스를 사용해야 좋을지를 설명하는 일반적인 가이드라인과 높은 결합도를 피할 수 있는 상황도 배워보자예제// 특정금액 이하 입출금내역 조회하기public List findTransactionsGreaterThanEqual(final int amount) { final List result = new ArrayList(); for(final BankTransaction bt: bankTansactions) { if(bt.getAmount() >= amount) { result.add(bt); } } return result;}..
2024.10.09 -
2장 입출금 내역 분석기 후반부 내용
결합도한 기능이 다른 클래스에 얼마나 의존하고 있는지를 가늠한다. 결합도는 어떤 클래스를 구현하는데 얼마나 많은 다른 클래스를 참조했는가로 설명할 수 있다.더 많은 클래스를 참조했다면 기능을 변경할 때 그만큼 유연성이 떨어지고, 어떤 클래스의 코드를 수정하게 되면 이 클래스에 의존하는 모든 클래스가 영향을 받게 된다.비유 예시시계를 생각해보아라, 시계가 어떻게 동작하는지 몰라도 시간을 알아내는 데 문제가 없다.사람은 시계 내부 구조에 의존하지 않기 때문이다. 이는 두 가지 임무인 인터페이스와 구현이 서로 결합되지 않았기 때문이다.코드 예시public interface BankStatementParser { BankTransaction parseFrom(String line); List pars..
2024.10.08 -
2장 입출금 내역 분석기
final 변수지역 변수나 필드를 final로 정의하기 때문에 이 변수에 값을 재할당 할 수 없다.코드에서 가능한 많은 변수를 final로 표시하면 어떤 객체의 상태가 바뀔 수 있고, 어떤 객체의 상태가 발쓀 수 없는지 명확하게 구분할 수 있다.자바 언어에서 final 키워드가 쓸모없는 상황도 있다. 추상 메서드(인터페이스 내)의 메서드 파라미터에 final을 사용하는 상황이다. 자바 10에서 var 키워드가 등장하고 final 유용성이 크게 감소되었다.갓 클래스한 개의 파일에 모든 코드를 구현해서 거대한 클래스가 탄생되는 클래스.기존 코드의 로직을 갱신해야 한다면, 어떻게 이 코드를 찾아서 바꿀 수 있을까? 이런 문제를 갓 클래스 안티 패턴이라 부른다.단일책임원칙(SRP)쉽게 관리하고 유지보수하는 코드..
2024.10.06