Open youngkimi opened 5 months ago
java.util.List
시작
끝
찾고자 하는 원소
List
subList()
indexOf()
직교성(Orthogonality)이 높다 직교성이란 서로 직각을 이루며 교차한다는 뜻. 두 벡터의 내적이 0이듯이, 서로 영향을 주는 성분이 없다는 이야기이다. 소프트웨어에서 직교성이 높다란, 공통점이 있는 부분 없이 기능이 잘 분리되어 있다.를 의미한다. 본문의 부분 리스트에서 인덱스 구하기를 살펴보자. 부분 리스트를 구하는 과정과, 원하는 원소의 인덱스를 구하는 과정은 관련이 없다. 따라서 이를 개별 메서드로 제공해야 직교성이 높다고 할 수 있다. 직교성이 메서드의 개수를 오히려 줄여준다고 주장하는 이유는 무엇일까? 고수준의 기능마다 개별적으로 메서드를 작성하는 상황을 생각해보자. 독립적이고 원자적인 메서드를 구현하여 이를 조합하는 것이 고수준의 메서드를 여러 번 작성하는 것보다 메서드 수도 적고, 중복이 줄고, 결합성이 낮아질 것이기 때문이다. 이는 가볍고, 구현하기 쉽고, 유연하고, 강력하다. 직교성은 소프트웨어 전반에 사용할 수 있는 용어이다. Micro-Service는 Monolithic보다 직교성이 높을까 낮을까? 물론 대체적인 경향성임을 잊지 말라 ...
직교성(Orthogonality)이 높다
직교성이 높다
공통점이 있는 부분 없이 기능이 잘 분리되어 있다.
부분 리스트에서 인덱스 구하기
setter
execute
HashMap
Map
Enum
boolean isCelcius
-
Chapter : 8. 메서드
Item : 51. 메서드 시그니처를 신중히 설계하라
Assignee : youngkimi
🍑 서론
🍑 본론
1. 메서드 이름을 신중히 짓자.
FactoryBuilderAdapterDelegateImpl2. 편의 메서드를 남발하지 말라.
3. 매개변수 목록은 짧게 유지하라.
해결책
1. 여러 메서드로 쪼갠다.
java.util.List
인터페이스를 보자.시작
,끝
,찾고자 하는 원소
3개의 매개변수라 필요하다.List
의subList()
메서드와indexOf()
를 사용하면 된다.2. 매개변수 여러 개를 받는 도우미 클래스를 만들어라.
3. 객체 생성에 사용한 빌더 패턴을 메서드 호출에 응용한다.
setter
를 호출해 필요한 값을 설정하게 하는 것이다.execute
메서드로 매개변수의 유효성을 검사한 후, 원하는 계산을 수행한다.HashMap
을 넘길 일은 없다.Map
을 사용해라.Enum
으로 전달받는게 낫다.boolean isCelcius
를 받는다고 생각해봐라.🍑 결론
Referenced by
-