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 Inheritance With Delegation )

    2020.02.16 by somiyuralove

  • 관측 데이터 복제 리팩토링

    2020.02.13 by somiyuralove

  • 생성자를 팩토리 메서드로 치환 (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

상속을 위임으로 치환 리팩토링 ( Replace Inheritance With Delegation )

* 상속을 위임으로 치환 리팩토링 ( Replace Inheritance With Delegation ) * 상속 - 상위 클래스에서 선언한 필드와 메서드를 하위 클래스에서 이용할 수 있음. 이를 부모가 자식에게 물려주는(inherit)것에 비유해서 상속(inheritance)이라고 부름. 많은 객체지향 프로그램에서 상속 기능이 있음. * 위임 - 다른 인스턴스의 메서드를 호출해서 처리하는것을 처리를 위임한다(delegate)라고 표현. - 위임(delegation)이란 '맡긴다'는 의미임. * 상속과 위임의 비교 - 상속은 클래스 사이의 관계이고, 위임은 인스턴스 사이의 관계, 이는 상위 클래스에서 상속받을 메서드나 필드는 인스턴스마다 정할 순 없지만, 작업을 위탁할 곳은 인스턴스마다 정할 수 있음 -..

자바강좌/리팩토링 2020. 2. 16. 23:25

관측 데이터 복제 리팩토링

- 혼재하는 모델과 뷰를 분리, 단지 분리할 뿐이라면 서로 동기화되지 않으므로 관차자 패턴(Observer pattern)이나 이벤트 리스너를 사용해서 모델 내용이 변하면 그 사실을 뷰에 알리고 모델과 뷰를 동기화함. - 뷰는 모델의 데이터를 복사한 형태로 가지고, 롼찰자 패턴이나 이벤트 리스너로 그 두 데이터를 동기화 한다는 의미를 가짐. * 리팩토링 전 코드 package DuplicationObservedData.before; import java.awt.Button; import java.awt.Frame; import java.awt.GridLayout; import java.awt.Label; import java.awt.event.ActionEvent; import java.awt.event..

자바강좌/리팩토링 2020. 2. 13. 21:47

생성자를 팩토리 메서드로 치환 (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

추가 정보

인기글

최신글

페이징

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

티스토리툴바