본문 바로가기
[Effective Java] 생성자의 매개변수가 많을 때는 빌더(builder)를 고려하자. 생성자의 매개변수가 많을 때는 빌더(builder)를 고려하자. - static 팩토리 메소드와 생성자는 공통적 제약이 있다. 선택가능한 매개변수가 많아질 경우 신축성 있게 처리하지 못한다. - 텔레스코핑 생성자(telescoping constructor) 패턴이 대안이 될 수 있으나, 마찬가지로 매개변수 수가 증가하면 무척 번거로워 진다. 가독성도 떨어지고, 유지보수도 어려워진다. ( 갯수를 세고 의미를 파악하는데만도 한세월~ ) - 자바빈즈(Java Beans) 패턴이 두번째 대안이 될 수 있으나, 이 패턴은 심각한 단점을 가지고 있다. 여러 번의 메소드 호출로 나누어져 인스턴스가 완성되기 때문에 객체가 일관된 상태를 유지하지 못할 수 있다. ( multi thread 환경 ) 또한 자바빈즈는 불변 .. 2015. 2. 8.
[Java] Double-checked locking 을 사용하지 말자! [Java] Double-checked locking 을 사용하지 말자! Double checked locking 이란? 보통 synchronized block 은 performance 이슈를 부르기 쉽다.double-checked locking 이 performance 이슈를 조금 완화시켜준다. double-checked locking 은 null check 와 같은 부분을 synchronized 밖으로 빼서synchronized 를 기다리지 않고 처리하게 만들어 준다. volatile 을 주면 read, write 가 sync 로 걸릴 경우 write 를 먼저 하게 하고, read 를 나중에 하게 한다.volatile 이 없다면 반대로 read 를 보통 먼저 하고 write 를 나중에 한다고 한다. .. 2014. 3. 31.
"웹을 지탱하는 기술" 내용정리. "웹을 지탱하는 기술" 내용정리. "웹을 지탱하는 기술" 이라는 일본 저자가 쓴 책을 본 후에,핵심이 되는 내용이랑 내가 몰랐던 내용인데 정리해두면 좋을 것 같은 내용을 정리해본다. 설명과 함께 정확한 내용, 빠진 내용을 확인하고 싶은 사람은 책을 직접 볼 수 있도록~ 웹을 지탱하는 기술 서평을 보고 싶으면 여기를 클릭! 웹의 다양한 용도 1. 웹사이트 2. User InterfaceHTML 도움말, 웹 UI for embedded systems 3. APIWeb Service 라 부름 웹을 지탱하는 기술 1. HTTP, URI, HTML 2. 하이퍼미디어비선형적 컨텐츠. 중간에 link 타고 갈 수 있고, 동영상, 다른 사이트 등을 껴 넣을 수 있다. (책은 선형) 3. 분산시스템자료의 내용이 전세계적.. 2013. 6. 24.
반응형