이팩티브 자바 3

[Youtube][이팩티브 자바] #5 의존성 주입

백기선님의 유투브 강의 내용을 정리하였습니다. 백기선님 Github 바로가기 Youtube 바로가기 강의내용 필기 주제 5 : 리소스를 엮을 때는 의존성 주입을 선호하라 대부분의 클래스는 여러 리소스에 의존한다. 이책에서는 SpellChecker와 Dictionary를 예로 들고 있다. 즉, SpellChecker가 Dictionary를 사용하고 이를 의존하는 리소스 또는 의존성이라고 부른다. 이때 SpellChecker를 다음과 같이 구현하는 경우가 있다. 부적절한 구현 static 유틸 클래스 유틸클래스 -> 인스턴스로 만들지 않기 때문에 pivate한 생성자로 만들어준다. (지난 강의 #4 참고) package me.whiteship.effectivejava3rd.item05.usecase1; im..

Programming/Java 2020.05.21

[Youtube][이팩티브 자바] #4 인스턴스를 못만들게 하고 싶다면?

백기선님의 유투브 강의 내용을 정리하였습니다. 백기선님 Github 바로가기 Youtube 바로가기 강의내용 필기 주제 4. private 생성자로 noninstantiability를 강제할 것 static 메서드와 static 필드를 모아둔 클래스를 만든 경우 해당 클래스를 abstract로 만들어도 인스턴스를 만드는 걸 막을 순 없다. 상속 받아서 인스턴스를 만들 수 있기 때문이다. static 메서드와 static 필드를 모아둔 클래스를 만든 경우 utility 클래스를 이렇게 많이 만든다. utility 클래스는 인스턴스를 만들 필요가 없기 때문에, abstact로 만들어서 강제할 수 있다. static클래스는 너무 많이 쓰면 안좋은 평판이 있다. (하지만 유효한 경우도 있다. Math, Arra..

Programming/Java 2020.05.20

[Youtube][이팩티브 자바] #1 생성자 대신 static 팩토리 메소드를 고려해 볼 것

백기선님의 유투브 강의 내용을 정리하였습니다. 백기선님 Github 바로가기 Youtube 바로가기 강의내용 필기 Item 1. 생성자 대신 static 팩토리 메소드를 고려해 볼 것. public 생성자를 사용해서 객체를 생성하는 전통적인 방법 말고, 아래와 같이 public static 팩토리 메소드를 사용해서 해당 클래스의 인스턴스를 만드는 방법도 있다. public static Boolean valueOf(boolean b) { return b ? Boolean.TRUE : Boolean.FALSE; } 이런 방법에는 각각 장단점이 있는데 아래 장점 5가지, 단점 2가지로 정리하였다. 장점 1. 이름을 가질 수 있다. 생성자는 만들면 보통 클래스 이름과 동일하게 만들어야 한다. # public 생..

Programming/Java 2020.05.06