EffectiveJava [Item4] 인스턴스화를 막으려거든 private 생성자를 사용하라 _아직 Item4까지 밖에 보지 않았지만 정말 개발을 하면서 신경쓰지 않았던 부분에 대해서 다시한번 반성하고 배워가게 되는 책인것 같습니다. Item4 같은 경우는 간단하게 보고 넘어가도 될듯 하여 짧게 포스팅을 하려고 합니다 . 자동으로 생성된 생성자가 아닌 명시적으로 만든 생성자가 private이기 때문에 클래스의 외부에서는 접근 불가능합니다. 따라서 어떤 환경에서도 클래스가 인스턴스화 ... EffectiveJavaJava개발자developerEffectiveJava Use Dependency Injection! 각 클래스간에 의존성을 framework 수준에서 관리하게 해주는 프레임워크의 근간은 이번에 소개할 의존 객체 주입이라는 간단하면서도 강력한 방법입니다. 객체 지향 프로그래밍을 하다보면 클래스 간에 서로 의존성이 생길 수 밖에 없습니다. 그리고 대부분 처음에는 클래스의 생성자에서 맴버 변수에 new 키워드를 통해서 객체를 생성해서 할당하는 방식으로 객체간에 의존성을 만들어가게 됩니다. B 클... EffectiveJavaJavadiEffectiveJava [Java] 불필요한 객체 생성을 피하라 불필요한 객체 생성을 피하라 똑같은 기능의 객체를 매번 생성하기 보다는 객체 하나를 재사용하는 것이 나을 때가 많다. 이 문장이 반복문이나 자주 호출되는 메소드 안에 있다면 쓸데없는 String 인스턴스가 수백만개 만들어 질 수 있다. 이와 같이 코드를 바꾸면 새로운 인스턴스를 매번 만드는 대신 하나의 String 인스턴스를 사용한다. 또한 이 방식을 사용한다면 같은 가상 머신 안에서 이와 ... EffectiveJavaJavaEffectiveJava Don't use raw type in Java Generic 제네릭 타입을 정의하면 그에 딸린 Raw Type도 함께 정의됩니다. List<E>의 Raw Type은 List입니다. 위 처럼 Raw type을 사용하면 런타임에야 오류를 알아챌 수 있게됩니다. 정리하자면 Raw Type을 사용하는 것은 제네릭이 주는 안정성과 표현력을 모두 잃게 됩니다. List같은 raw type은 사용해서는 안되지만 List<Object>와 같이 모든 클래스의 조상인 ... JavaEffectiveJavaGenericEffectiveJava
[Item4] 인스턴스화를 막으려거든 private 생성자를 사용하라 _아직 Item4까지 밖에 보지 않았지만 정말 개발을 하면서 신경쓰지 않았던 부분에 대해서 다시한번 반성하고 배워가게 되는 책인것 같습니다. Item4 같은 경우는 간단하게 보고 넘어가도 될듯 하여 짧게 포스팅을 하려고 합니다 . 자동으로 생성된 생성자가 아닌 명시적으로 만든 생성자가 private이기 때문에 클래스의 외부에서는 접근 불가능합니다. 따라서 어떤 환경에서도 클래스가 인스턴스화 ... EffectiveJavaJava개발자developerEffectiveJava Use Dependency Injection! 각 클래스간에 의존성을 framework 수준에서 관리하게 해주는 프레임워크의 근간은 이번에 소개할 의존 객체 주입이라는 간단하면서도 강력한 방법입니다. 객체 지향 프로그래밍을 하다보면 클래스 간에 서로 의존성이 생길 수 밖에 없습니다. 그리고 대부분 처음에는 클래스의 생성자에서 맴버 변수에 new 키워드를 통해서 객체를 생성해서 할당하는 방식으로 객체간에 의존성을 만들어가게 됩니다. B 클... EffectiveJavaJavadiEffectiveJava [Java] 불필요한 객체 생성을 피하라 불필요한 객체 생성을 피하라 똑같은 기능의 객체를 매번 생성하기 보다는 객체 하나를 재사용하는 것이 나을 때가 많다. 이 문장이 반복문이나 자주 호출되는 메소드 안에 있다면 쓸데없는 String 인스턴스가 수백만개 만들어 질 수 있다. 이와 같이 코드를 바꾸면 새로운 인스턴스를 매번 만드는 대신 하나의 String 인스턴스를 사용한다. 또한 이 방식을 사용한다면 같은 가상 머신 안에서 이와 ... EffectiveJavaJavaEffectiveJava Don't use raw type in Java Generic 제네릭 타입을 정의하면 그에 딸린 Raw Type도 함께 정의됩니다. List<E>의 Raw Type은 List입니다. 위 처럼 Raw type을 사용하면 런타임에야 오류를 알아챌 수 있게됩니다. 정리하자면 Raw Type을 사용하는 것은 제네릭이 주는 안정성과 표현력을 모두 잃게 됩니다. List같은 raw type은 사용해서는 안되지만 List<Object>와 같이 모든 클래스의 조상인 ... JavaEffectiveJavaGenericEffectiveJava