
Effective Java 3. 생성자나 열거 타입으로 싱글턴임을 보증하라
2021. 12. 28. 01:00
Java/Effective Java
오늘은 싱글턴을 만드는 방법에 대해 알아보겠다. 싱글턴을 만드는 방법에는 아래와 같이 세 가지 방식이 있다. 싱글턴을 만드는 방법 1. public static final 필드 방식의 싱글턴 생성자는 private으로 감춰두고, 유일한 인스턴스에 접근할 수 있는 수단으로 public static final 멤버를 마련한다. public class Elvis1 { public static final Elvis1 INSTANCE = new Elvis1(); private Elvis1() { } } 이 방식의 장점은 아래와 같다. public static 필드라 final이니 해당 클래스가 싱글턴임이 API에 명백하게 드러난다. 간결하다. 싱글턴을 만드는 방법 2. 정적 팩터리 방식의 싱글턴 생성자는 priv..

Effective Java 2. 생성자에 매개변수가 많다면 빌더를 고려하라
2021. 12. 25. 23:42
Java/Effective Java
객체 생성은 생성자를 통해 하거나 아이템 1에서 공부한 것처럼 정적 팩토리 메서드를 사용할 수 있다. 이제 매개변수가 많아질 때에 어떻게 객체 생성을 할 수 있을지 알아보자. 점층적 생성자 패턴(telescoping constructor pattern) 정적 팩터리와 생성자에는 똑같은 제약이 있다. 바로 선택적 매개변수가 많을 때 적절히 대응하기 어렵다는 점이다. 이럴 때, 프로그래머는 샘플 코드와 같이 점층적 생성자 패턴(telescoping constructor pattern)을 즐겨 쓴다. public class NutritionFacts { ... public NutritionFacts(int servingSize, int servings, int calories) { this(servingSiz..

Effective Java 1. 생성자 대신 정적 팩터리 메서드를 고려하라.
2021. 12. 24. 06:16
Java/Effective Java
오늘은 Effective Java의 첫 번째 아이템을 공부해보려 한다. 오늘의 아이템은 생성자 대신에 인스턴스를 가져오는 방법인 정적 팩터리 메서드를 알아보려고 한다. 정적 팩터리 메서드의 장점과 단점에 대해 알아보고 적절히 나중에 사용해보자! 클라이언트가 클래스의 인스턴스를 얻는 전통적인 수단은 public 생성자다. 하지만 프로그래머가 꼭 기억해야 할 기법이 있다. 그 클래스의 인스턴스를 반환하는 클래스의 생성자와 별도로 정적 팩터리 메서드(static factory method)를 제공하는 것이다. 아래는 Boolean에서 가져온 예이다. public static Boolean valueOf(boolean b) { return b ? Boolean.TRUE : Boolean.FALSE; } 장점 1..

2021에는 어떤 공부를 했을까?
2021. 12. 19. 23:27
회고
올 한해 개발 공부를 위해 어떤 공부를 했는지 회고를 해봐야겠다. 올 한 해 공부한 책들은 아래와 같다. 1. Head First Design Pattern 유일하게 내가 책들 중에 완독한 책이다. 디자인 패턴은 언젠가 한번 쭉 공부를 하고 싶었는데, 미루다미루다 올 해 공부를 하였다. 공부를 하고 나니 확실히 현업에서 코드를 깔끔하게 짜는 방법을 터득한 것 같았다. 올 해 면접을 두 번정도 봤는데, 보통의 개발자들이 한번쯤은 디자인 패턴을 공부한다고 하더라. 그래서 너무 늦게 공부한 내가 조금 민망했다 ^^; 2. Moden Java in Action 모던 자바인 액션은 내가 면접에서 모던 자바 질문을 털린 이후로 조금 책을 봤다. 질문에서 나온 내용이 챕터 1에서 다 나오는 것을 보고, 책을 사고 왜..

다시 시작하자 블로그!
2021. 12. 18. 19:56
회고
한동안 공부를 꽤나 열심히 했던 것 같은데, 12월은 왜인지는 모르겠지만 공부가 너무 하기 싫었다. 무엇을 위해 공부를 하는지 목표가 없어서일까? 아주 안일하게 2021 마무리를 맞이하고 있다. 물론 공부를 안해서 편하기도 하고, 주위 사람들과 여유롭게 지내서 또 좋았지만 마음 한 편으로는 공부를 하고 싶다는 생각이 든다. 불안한 마음에서 그런것일까? 그래서 원래 쓰던 velog을 접고 tistory에 공부한 내용을 하나하나 정리하려고 한다. 이제 잠깐 본 글도 정리를 해서 다 내 것으로 만들어야지! 다시 열심히 해봐야겠다.