거꾸로 바라본 세상
규칙 2. 생성자 인자가 많을 때는 Builder 패턴 적용을 고려하라
Language/Java 2017. 1. 19. 16:32

규칙2. 생성자 인자가 많을 때는 Builder 패턴 적용을 고려하라 정적 팩터리나 생성자의 문제- 선택적 인자가 많은 상황에 잘 적응하지 못하다는 것 프로그래머들은 보통 점층적 생성자 패턴(telescoping constructor pattern)을 적용- 필수 인자만 받는 생성자를 하나 정의하고, 선택적 인자를 하나 받는 생성자를 추가하고, 거기에 두 개의 선택적 인자를 받는 생성자를 추가하는 식으로 생성자들을 쌓아 올리듯 추가하는 것.결국 모든 선택적 인자를 다 받는 생성자를 추가하면 정의는 끝나게됨.ex)1234567891011121314151617181920212223242526272829//점층적 생성자 패턴 - 더 많은 인자 개수에 잘 적응하지 못한다. public class Nutritio..

규칙 1. 생성자대신 정적 팩터리 메서드를 사용할 수 없는지 생각해 보라
Language/Java 2017. 1. 19. 15:18

규칙 1. 생성자대신 정적 팩터리 메서드를 사용할 수 없는지 생각해 보라 클래스를 통해 객체를 만드는 일반적인 방법- public으로 선언된 생성자(constructor) 다른 방법클래스에 public으로 선언된 정적 팩터리 메서드(static factory method)를 추가하는 것.Ex)_Boolean 클래스의 valueOf 정적 팩터리 메서드의 장점 1. 생성자와는 달리 정적 팩터리 메서드에는 이름(name)이 있다.- 생성자에 전달되는 인자(parameter)들은 어떤 객체가 생성되는지를 설명하지 못함.- 정적 팩터리 메서드는 이름을 잘 짓기만하면 사용하기 쉽고, 클라이언트 코드의 가독성(readability)도 높아짐- 클래스에는 시그니처(signature)별로 하나의 생성자만 넣을 수 있는데..

리눅스에서 could not initialize class javax.imageio.ImageIO 에러가 발생할 경우
OS-Tools/Linux 2017. 1. 17. 14:54

리눅스에서 could not initialize class javax.imageio.ImageIO 에러가 발생할 경우 1sudo apt-get install libxrender1 libxtst6 libxi6 을 설치해주면 된다.

리눅스에서 java.lang.NoClassDefFoundError: sun/awt/X11GraphicsEnvironment 에러가 발생할 경우
OS-Tools/Linux 2017. 1. 17. 14:51

리눅스에서 java.lang.NoClassDefFoundError: sun/awt/X11GraphicsEnvironment 에러가 발생할 경우 - 시스템 프로퍼티 java.awt.headless를 true로 설정해주면 된다. - 톰캣의 경우 catalina.sh 파일 제일 위에 CATALINA_OPTS="-Djava.awt.headless=true" 를 추가한다. ps -eaf | grep java 로 확인해보면 "-Djava.awt.headless=true가 추가되어있는 것을 확인할 수 있다. 1CATALINA_OPTS="-Djava.awt.headless=truecs