본문 바로가기

프로그래밍/자바20

[effective java2]규칙2. 생성자 인자가 많을 때는 Builder 패턴 적용을 고려하라. 객체의 생성과 삭제 규칙2. 생성자 인자가 많을 때는 Builder 패턴 적용을 고려하라. 정적팩터리나 생성자는 선택적 인자가 많은 상황에 잘 적응하지 못한다는 같은 문제를 갖고 있다. - 생성자 인자가 많아지면 첫번째 대안!! 점층적 생성자 패턴 public class NutritionFacts { private final int servingSize; // (mL) required private final int servings; // (per container) required private final int calories; // optional private final int fat; // (g) optional private final int sodium; // (mg) optional pri.. 2017. 9. 7.
[effective java2]규칙1. 생성자 대신 정적 팩터리 메소드를 사용할 수 없는지 생각해 보라 객체의 생성과 삭제 규칙1. 생성자 대신 정적 팩터리 메소드를 사용할 수 없는지 생각해 보라 클래스를 통해 객체를 만드는 가장 일반적인 방법은 public 한 생성자를 이용하는 것 또 알아야 할 방법은 정적 팩토리 메소드를 추가하는것 public static Boolean valueOf(boolean b){ return b ? Boolean.TRUE : Boolean.FALSE; } public으로 선언된 생성자 대신 정적 팩토리 메소드를 제공하는 방법의 장단점!! 첫번째 장점 : 생성자와는 달리 정적 팩터리 메소드에는 이름이 있다. - 생성자에 전달되는 인자들은 어떤 객체가 생성되는지를 설명하기 힘들다. - 정적팩토리 메소드는 이름을 잘 짓기만 하면 사용하기도 쉽고, 코드의 가독성도 높아진다. 예> B.. 2017. 9. 6.
Exception 예제 2016. 2. 23.
ChatClient package examples.network; import java.net.*;import java.io.*; public class ChatClient { public static void main(String[] args) {if(args.length != 2){System.out.println("사용법 : java ChatClient id 접속할서버ip");System.exit(1);}Socket sock = null;BufferedReader br = null;PrintWriter pw = null;boolean endflag = false;try{sock = new Socket(args[1], 10001);pw = new PrintWriter(new OutputStreamWriter(sock.g.. 2016. 1. 22.