반응형

생성

    객체의 생성과 삭제 - 규칙 7 종료자 사용을 피하라

    일반적으로 자주 사용하는 finalizer는 예측 불가능하며, 대체로 위험하고, 불필요하다. 그렇기에 꼭 필요로 하는 작업을 명시할 때에는, 사용해서는 안 된다. 문제 사항 1. final 문장에서 Exception이 발생하였을 경우에 하단에 기재한 문장이 실행되지 않아 결국 문제를 유발할 수도 있다. 123456789try { file = new FileWriter(new File("/test/tt"));} catch (IOException ex) { System.out.println("catch block");} finally { System.out.println(12/0); // 강제로 Exception을 발생시킨다. 하단에 file.close() 문장은 실행되지 않는다. file.close(); ..

    객체의 생성과 삭제 - 규칙 4 객체 생성을 막을 때는 private 생성자를 사용하라.

    객체 생성을 막기위해서는 Abstract Class를 이용하거나, 생성자를 private로 생성하면 막을 수 있다. 하지만 이렇게 객체 생성을 막는다는 것은 객체지향 개념에서 벗어나는 행위일 수 있다. 하지만 다음과 같은 경우에 사용을 위해서 사용되기도 한다. 1. 자바의 기본 자료형 값(primitive value) 또는 배열에 적용되는 메서드를 한 군대에 모아둘 때 유용하다. -> Util성 성질을 가지는 클래스에서 유용 Ex) java.lang.Math, java.lang.Arrays Math.abs(), Math.cos() Arrays.asList() 2. 규칙 1번에서 사용하는 정적 메서드를 모아놓을 때도 사용할 수 있다. Ex) java.util.Collections Collections.em..

    객체의 생성과 삭제 - 규칙 2 생성자 인자가 많을 때는 Builder 패턴 적용을 고려하라

    기존의 생성자로 많은 인자를 넣어 생성자를 추가하려고 하는 경우에는 다음과 같이 점층적 생성자 패턴을 자주 사용한다. 1234567891011121314151617181920점층적 생성자 패턴public class Wedul { private String teamName; private String teamReader; private int memberCnt; public Wedul(String teamName) { this(teamName, "", 0); } public Wedul(String teamName, String teamReader) { this(teamName, teamReader, 0); } public Wedul(String teamName, String teamReader, int m..

    자바 Annotation 만들기

    자바에서 Annotation은 별도의 properties파일이나 xml같은 설정파일에 작성하는 부가적인 정보를 어노테이션으로 간편하게 설정할 수 있다. 형태 123456789101112131415@Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface Anno { public String defaultVal() default “OK”; public String val(); } Colored by Color Scriptercs Target은 어노테이션의 적용 대상을 선정하고, Retension은 이 어노테이션의 정보가 어디 까지 유지되는지 설정한다. @Target - Constructor, Field..

    NPM 사용시 의존 모듈 관리 package.json

    NPM 사용시 모듈들에 대한 버전관리가 필요하게 되는데 이때 사용하게 되는 것이 package.json이다. 12345678910111213141516171819// package.json 파일 형태 { "name": "application-name" , "version": "0.0.1" , "private": true , "dependencies": { "express": "2.3.11" , "jade": ">= 0.0.1" }}cs 생성 방법cmd 창에서 "npm init"이라고 명령어 입력시 해당 폴더에 필요로 하는 package.json파일을 생성해준다. 모듈 기입필요로 하는 모듈을 모두 설치 시 마다 일일히 기입하게 될 경우 굉장히 귀찮은 작업이 될 것이다. 이것을 조금더 쉽게 관리하게 위해서 ..

반응형