Refactoring ch6

412 views
256 views

Published on

refactoring ch6

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
412
On SlideShare
0
From Embeds
0
Number of Embeds
49
Actions
Shares
0
Downloads
7
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Refactoring ch6

  1. 1. Refactoring Chapter6. 메서드 정리(Composing Methods) - Hee -
  2. 2. Contents  Extract Method  Inline Method  Inline Temp  Replace Temp with Query  Introduce Explaing Variable  Split Temporary Vairable  Remove Assigments to Parameters  Replace Method with Method Object  Substitue Algorithm
  3. 3. Extract Method메소드 추출 - 메소드의 길이가 너무 길 때 - 코드에 주석을 달아야 할 때 - 메소드를 분리하자. 단, 메소드의 이름은 메서드의 목적에 부합하도록 작성
  4. 4. Extract Method 메소드추출 Example1. 지역변수 사용안함 : 단순히 Method로 분리
  5. 5. Extract Method 메소드추출 Example2. 지역변수 사용 : 변수를 생성한 Method에 Parameter로 전달
  6. 6. Extract Method 메소드추출 Example3. 지역변수를 사용, 지역변수를 다시 대입(1)
  7. 7. Extract Method 메소드추출 Example3. 지역변수를 사용, 지역변수를 다시 대입(2)
  8. 8. Inline Method 메서드 내용 직접 삽입 - Method 기능이 단순해서 메서드명만 봐도 너무 뻔할 땐 메서드를 합쳐버리자 - Extract Method와 반대되는 방법
  9. 9. Inline Temp 임시변수 내용 직접 삽입 - 임시변수로 인해 다른 리팩토링이 힘들 땐 - 임시변수를 삭제하고 임시변수를 사용하는 부분을 수식으로 치환
  10. 10. Replace Temp with Query 임시변수를 메서드 호출로 전환 - 수식의 결과를 저장하는 임시변수가 있을 땐 그 수식을 메서드로 만들자 - 중복되는 코드로 인한 성능저하는 최적화 추후에 과정에서 해결 //basePrice 변수 삭제
  11. 11. Replace Temp with Query 임시변수를 메서드 호출로 전환 - Tip : 임시변수를 final로 선언 후 컴파일해서 그 임시변수들이 값을 한번만 대입받는지 시험
  12. 12. Introduce Explaining Variable직관적 임시변수 사용 - 사용된 수식이 복잡할 땐 수식의 결과나 수식의 일부분을 임시변수에 저장하자. //수식이 복잡함..
  13. 13. Introduce Explaining Variable 직관적 임시변수 사용 - 위의 예제는 Method Extract 기법을 사용해도 된다. - Extract Method 기법 적용이 더 어렵거나 복잡할 때만 I.E.V 방법 적용할 것
  14. 14. Split Temporary Variable임시변수 분리 - 임시변수를 하나를 여러 용도로 사용하지 말자. //acc 변수에 값을 재할당하고 있음 //임시 변수에 final을 사용하여 값의 재할당을 방지
  15. 15. Remove Assignments to Parameters매개변수로의 값 대입 제거 - 파라미터로 받은 변수의 값을 변경하지 말자 - 메서드 안에서의 값의 변화는 호출한 루틴에 반영되지 않는다.(call by value) - Tip. 이 방법을 강제적용하기 위해 final 키워드를 사용 //때로는 매개변수에 final을 사용하여 값의 재할당을 방지할 수 있음. - 객체를 매개변수로 사용할 때 아래와 같은 방식은 절대 사용하지 말자(Call by reference)
  16. 16. Replace Method with Method Object메서드를 매서드 객체로 전환 - 지역변수 때문에 메서드 추출(R.T.Q) 적용이 어려운 메서드는 그 메서드 자체를 객체로 전환 - 지역변수를 전환한 객체의 필드로 만들고 그 메서드를 객체안의 여러 메서드로 쪼개자 - Pros. 손쉽게 Extract Method 적용 가능 //지역변수를 객체의 필드로 정의 //Method Extract
  17. 17. Substitute Alogorithm알고리즘 전환 - 쉽고/편한 알고리즘으로 교체

×