developer

고정 헤더 영역

글 제목

메뉴 레이어

developer

메뉴 리스트

  • 홈
  • 태그
  • 방명록
  • 분류 전체보기 (251)
    • 한양대공학대학원컴퓨터공학과 (1)
    • 통신프로토콜 (2)
    • eclipse (4)
    • spring (37)
      • spring 게시판 만들기 (6)
      • spring 로그인 처리 (2)
      • spring boot (9)
      • spring cloud config (0)
      • spring cloud eureka (0)
    • Git (19)
    • 체당금신청 (5)
    • Mybatis (8)
    • 전세금돌려받기 (2)
    • 아이폰 개발 ( i-os ) (5)
    • 주식 (5)
      • 일일매매동향 (5)
    • Vue.js (12)
      • Vue.js 동영상강좌 (4)
    • 자바강좌 (67)
      • 리팩토링 (13)
    • 취미 (21)
      • 관심기사 (8)
      • 영화 (2)
      • 여행 (9)
      • 마케팅 (2)
    • Database (25)
      • Oracle (10)
    • C언어강좌 (1)
    • 자바스크립트 (18)
      • 자바스크립트 디자인패턴 (2)
      • jquery (9)
    • 파이썬 (5)
    • 정보관리기술사 (4)

검색 레이어

developer

검색 영역

컨텐츠 검색

리팩토링

  • 생성자를 팩토리 메서드로 치환 (Replace Constructor with Factory Method )

    2020.02.10 by somiyuralove

  • 에러 코드를 예외로 전환( Replace Error Code with Exception )

    2020.02.09 by somiyuralove

  • 분류 코드를 상태/전략 패턴으로 치환

    2020.02.08 by somiyuralove

  • 분류 코드를 하위 클래스로 치환 (Replace Type Code With Subclass)

    2020.02.03 by somiyuralove

  • 분류 코드를 클래스로 치환( Replace Type Code with Class) 리팩토링

    2020.01.28 by somiyuralove

  • 클래스 추출(Extract Class) 리팩토링

    2020.01.28 by somiyuralove

  • 메서드 추출(Extract Method) 리팩토링

    2020.01.20 by somiyuralove

  • 널 객체 도입 리팩토링

    2020.01.18 by somiyuralove

생성자를 팩토리 메서드로 치환 (Replace Constructor with Factory Method )

* 생성자를 팩토리 메서드로 치환 (Replace Constructor with Factory Method ) - 생성하고 싶은 인스턴스가 속한 실제 클래스를 클라이언트에서는 숨기고 싶음. - 생성자를 팩토리 메서드로 치환함. - 어느 클래스 인스턴스를 생성할지를 팩토리 메서드 안에서 정할 수 있음 - 생성한 인스턴스를 변경해도 클라이언트 쪽은 변경하지 않아도 됨. - 추상도가 너무 올라가면 코드가 오히려 난해해짐. * 방법 1. 팩토리 메서드 작성 1) 팩토리 메서드 작성 - 팩토리 메서드 안에서는 현재 생성자를 호출 2) 팩토리 메서드 호출 - 클라이언트에서 생성자를 호출하는 부분을 수정해서 팩토리 메서드를 호출하도록 함 3) 컴파일해서 테스트 2. 생성자 숨기기 1) 생성자를 private로 만듬 ..

자바강좌/리팩토링 2020. 2. 10. 22:05

에러 코드를 예외로 전환( Replace Error Code with Exception )

* 에러 코드를 예외로 전환( Replace Error Code with Exception ) - 프로그램이 동작하는 도중에 어떤 에러가 발생했다고 하면, 그 때 프로그램은 발생한 에러에 대한 에러처리를 해야합니다. - 에러처리는 아주 중요함. 하지만 한 메서드안에 정상 처리와 에러 처리가 혼재하면 프로그램의 흐름을 파악하기 어려움. - 어떤 메서드가 실행 중에 에러가 발생했는데 그 메서드 안에서 에러를 처리하지 않는다고 합시다. 이 경우 호출하는 쪽 메서드에 - 에러를 나타내는 값, 즉 에러 코드(error code)를 반환해 에러가 발생했다고 알려야 함. 하지만 호출하는 쪽에서도 에러 처리를 하지 않고 - 에러코드를 다시 상위 메서드에 반환할지도 모름. 그렇게 되면 에러 코드 전파 처리를 프로그램 전..

자바강좌/리팩토링 2020. 2. 9. 22:37

분류 코드를 상태/전략 패턴으로 치환

* 분류 코드를 상태/전략 패턴으로 치환 - 분류코드(type code)는 객체 종류를 나타내는 값. 분류코드를 상태/전략 패턴으로 치환(Replace Type Code with State/Strategy) 리팩토링에서 상태패턴 또는 전략패턴이라는 디자인패턴을 사용함. - 분류 코드를 상태/전략 패턴으로 치환은 분류 코드를 상태 객체라고 부르는 객체를 사용해 치환함. * 방법 1. 상태 객체를 나타내는 클래스 작성 - 분류 코드를 자기 캡슐화 - 분류 코드를 나태내는 새로운 클래스(상태 클래스) 작성 - 분류 코드를 값마다 상태 객체의 하위 클래스 작성 - 분류 코드를 얻는 추상 메서드를 상태 객체에 작성 - 하위 클래스는 추상 메서드를 오버라이드해서 분류 코드를 변환 - 컴파일 2. 상태 객체 사용 -..

자바강좌/리팩토링 2020. 2. 8. 13:30

분류 코드를 하위 클래스로 치환 (Replace Type Code With Subclass)

* 분류 코드를 하위 클래스로 치환 (Replace Type Code With Subclass) - 분류코드마다 하위 클래스를 준비해서 하위 클래스 내부에 동작을 서술하면 코드를 깔끔하게 정리할 수 있습니다. 이게 바로 여기서 배우는 분류 코드를 하위 클래스로 치환 리팩토링임. - 분류코드 마다 다른 동작을 한다면 switch문을 사용하고 싶어짐. 하지만 객체지향 프로그래밍이라면 switch문은 악취가 남. - 분류 코드를 하위 클래스로 치환 리팩토링은 하위 클래스라는 '구조'를 새로 만들거나, switch문 하나에 모여 있던 '동작'을 하위 클래스로 배분하게 됨. * 리팩토링 전 코드 package ReplaceTypeCodeWithSubclasses; public class Shape { public..

자바강좌/리팩토링 2020. 2. 3. 22:55

분류 코드를 클래스로 치환( Replace Type Code with Class) 리팩토링

* 분류 코드를 클래스로 치환( Replace Type Code with Class) 리팩토링 - 객체를 식별하기 위한 분류코드가 int 같은 기본 타입이면 타입 판별이 안되는 문제가 생김 이 문제를 해결하기 위해서 분류코드를 나타내는 새로운 클래스를 작성하는데 이것을 분류 코드를 클래스로 치환 리팩토링이라고 함. * 순서 1) 우선 int를 사용하는 기존 인터페이스(API)를 사용함. 2) 그후 int를 사용하지 않는 새로운 인터페이스(API)로 변경함. 3) 마지막으로 기존 인터페이스(API)를 삭제함. * 리팩토링 전 코드 package ReplaceTypeCodeWithClass; public class Item { public static final int TYPECODE_BOOK = 0; pu..

자바강좌/리팩토링 2020. 1. 28. 22:36

클래스 추출(Extract Class) 리팩토링

* 클래스 추출(Extract Class) 리팩토링 - 기존의 클래스에서 필드와 메서드를 추출해서 새로운 클래스로 옮기는 것. * 클래스 추출 리팩토링 순서 1) 클래스의 책임을 어떻게 추출할지 결정 2) 추출한 책임을 담당할 새로운 클래스 작성 3) 새로운 클래스에서 새로운 클래스로 링크 작성 4) 기존 클래스에서 새로운 클래스로 필요한 필드 이동 5) 이동 할때마다 컴파일해서 테스트 6) 기존 클래스에서 새로운 클래스로 필요한 메스드 이동 * 리팩토링 전 코드 package ExtractClass; public class Book { private String _title; private String _isbn; private String _price; private String _authorName..

자바강좌/리팩토링 2020. 1. 28. 21:49

메서드 추출(Extract Method) 리팩토링

* 메서드 추출 리팩토링 - 한 메서드안에 이런저런 세세한 처리가 많다면 그런 처리를 묶어서 나누고 독립된 메서드로 추출하고 추출한 메서드에는 적절한 이름을 붙임. - 장황한 코드가 읽기 편해짐. - 장단점 : 각 메서드가 짧아지는 장점이 있는 반면 메서드 개수가 늘어남 아래는 리팩토링 하기전의 예제 프로그램입니다. * Banner.java package Banner; public class Banner { private final String _content; public Banner(String content) { _content = content; } public void print(int times) { // 테두리 출력 System.out.print("+"); for (int i=0; i

자바강좌/리팩토링 2020. 1. 20. 21:39

널 객체 도입 리팩토링

하루 건너 먹어야 하는 약이 있습니다. 하지만 '하루 건너 먹기'는 쉽지 않습니다. '매번 오늘은 먹었던가?'하며 확인하기도 하고 깜빡하기도 합니다. 그런 일이 없도록 '아무런 효과도 없는 가짜약'을 만들어 두고 진짜 약과 교대로 먹는 패키지가 있다면 편리할 것입니다. 널 객체 도입(Introduce Null Object) 리팩토링은 아무것도 하지 않는 널 객체를 도입합니다. 널객체를 사용하면 '이 변수는 현재 null인가'라는 확인을 생략할 수 있습니다. 아래코드는 리팩토링 하기전 코드를 보여줍니다. * Person.java package Person; public class Person { private final Label _name; private final Label _mail; public P..

자바강좌/리팩토링 2020. 1. 18. 16:58

추가 정보

인기글

최신글

페이징

이전
1 2
다음
TISTORY
developer © Magazine Lab
페이스북 트위터 인스타그램 유투브 메일

티스토리툴바