독서
-
step15: 클래스와 멤버의 접근 권한을 최소화하라 어설프게 셜계된 컴포넌트와 잘 설계된 컴포넌트의 가장 큰 차이는 바로 클래스 내부 데이터와 내부 구현 정보를 얼마나 외부 컴포넌트로부터 잘 숨겼느냐다. 잘 설계된 컴포넌트는 모든 내부 구현을 완벽히 숨겨, 구현과 API를 깔끔히 분리한다. 정보 은닉의 장점은 정말 많다. 그중 대부분은 시스템을 구성하는 컴포넌트들을 서로 독립시켜 개발, 테스트, 최적화, 적용, 분석, 수정을 개별적으로 할 수 있게 해주는 것과 연관되어 있다. 장점 1st 시스템 개발 속도를 높인다. 여러 컴포넌트를 병렬로 개발할 수 있기 때문이다. 2nd 시스템 관리 비용을 낮춘다. 각 컴포넌트를 더 빨리 파악하여 디버깅할 수 있고, 다른 컴포넌트로 교체하는 부담도 적기 때문이다. 3..
Ch03 클래스와 인터페이스step15: 클래스와 멤버의 접근 권한을 최소화하라 어설프게 셜계된 컴포넌트와 잘 설계된 컴포넌트의 가장 큰 차이는 바로 클래스 내부 데이터와 내부 구현 정보를 얼마나 외부 컴포넌트로부터 잘 숨겼느냐다. 잘 설계된 컴포넌트는 모든 내부 구현을 완벽히 숨겨, 구현과 API를 깔끔히 분리한다. 정보 은닉의 장점은 정말 많다. 그중 대부분은 시스템을 구성하는 컴포넌트들을 서로 독립시켜 개발, 테스트, 최적화, 적용, 분석, 수정을 개별적으로 할 수 있게 해주는 것과 연관되어 있다. 장점 1st 시스템 개발 속도를 높인다. 여러 컴포넌트를 병렬로 개발할 수 있기 때문이다. 2nd 시스템 관리 비용을 낮춘다. 각 컴포넌트를 더 빨리 파악하여 디버깅할 수 있고, 다른 컴포넌트로 교체하는 부담도 적기 때문이다. 3..
2023.04.25 -
step1 : 생성자 대신 정적 팩터리 메서드를 고려하자 클래스는 public 생성자 대신 정적 팩토리 메서드를 제공할 수 있다. 장점 5가지 1st 이름을 가질 수 있다. 2nd 호출 될 때마다 인스턴스를 새로 생성하지 않아도 된다. -> 이에 대한 예시는 enum이 대표적이다. 사용되는 값들의 개수가 정해져 있으면 해당 값을 미리 생성해놓고 캐싱할 수 있는 구조로 만들 수 있다. 즉 정적 팩터리 메서드와 캐싱구조를 함께 사용하면 매번 새롭게 만들어 줄 필요가 없다. 3rd 반환 타입의 하위 타입 객체를 반환할 수 있는 능력이 있다. -> 상속을 사용할 때, 확인할 수 있다. 이때 정적 팩터리 메서드가반환값을 반환할 때, 상황에 따라 하위 클래스 타입의 객체를 반환할 수 있다는 것이다. 4th 입력 매..
Ch01 객체 생성과 파괴step1 : 생성자 대신 정적 팩터리 메서드를 고려하자 클래스는 public 생성자 대신 정적 팩토리 메서드를 제공할 수 있다. 장점 5가지 1st 이름을 가질 수 있다. 2nd 호출 될 때마다 인스턴스를 새로 생성하지 않아도 된다. -> 이에 대한 예시는 enum이 대표적이다. 사용되는 값들의 개수가 정해져 있으면 해당 값을 미리 생성해놓고 캐싱할 수 있는 구조로 만들 수 있다. 즉 정적 팩터리 메서드와 캐싱구조를 함께 사용하면 매번 새롭게 만들어 줄 필요가 없다. 3rd 반환 타입의 하위 타입 객체를 반환할 수 있는 능력이 있다. -> 상속을 사용할 때, 확인할 수 있다. 이때 정적 팩터리 메서드가반환값을 반환할 때, 상황에 따라 하위 클래스 타입의 객체를 반환할 수 있다는 것이다. 4th 입력 매..
2023.04.05