리팩토링 007 - 클래스 추출
TL;DR: Put together what belongs together
해결된 문제
관련 코드 냄새
코드 냄새 124 - 분기 변경
Maxi Contieri ・ 3월 24일 ・ 2분 읽기
코드 냄새 143 - 데이터 덩어리
Maxi Contieri ・ 6월 22일 ・ 2분 읽기
#webdev
#javascript
#beginners
#programming
단계
코드 냄새 124 - 분기 변경
Maxi Contieri ・ 3월 24일 ・ 2분 읽기
코드 냄새 143 - 데이터 덩어리
Maxi Contieri ・ 6월 22일 ・ 2분 읽기
#webdev
#javascript
#beginners
#programming
샘플 코드
전에
final class Person {
private String name;
// Below cohesive properties
private String homeAreaCode;
private String homeNumber;
public String name() {
return name;
}
// Below cohesive behaviour
public String telephoneNumber() {
return ("(" + homeAreaCode + ") " + homeNumber);
}
String areaCode() {
return homeAreaCode;
}
String officeNumber() {
return officeNumber;
}
}
후에
// 1. Extract the methods (and accidentally the properties) coupled into a new concept
public class TelephoneNumber {
private String number;
private String areaCode;
public String telephoneNumber() {
return ("(" + areaCode + ") " + _number);
}
public String areaCode() {
return areaCode;
}
public String number() {
return number;
}
}
final class Person {
private String name;
// 2. Use the new concept
private TelephoneNumber officeTelephone = new TelephoneNumber();
public String name() {
return name;
}
public String telephoneNumber(){
return officeTelephone.getTelephoneNumber();
}
}
유형
[X] 자동
대부분의 IDE는 이 안전한 리팩터링을 구현합니다.
왜 코드가 더 나은가요?
논리 코드는 규칙과 함께 한 곳에 있습니다.
태그
final class Person {
private String name;
// Below cohesive properties
private String homeAreaCode;
private String homeNumber;
public String name() {
return name;
}
// Below cohesive behaviour
public String telephoneNumber() {
return ("(" + homeAreaCode + ") " + homeNumber);
}
String areaCode() {
return homeAreaCode;
}
String officeNumber() {
return officeNumber;
}
}
// 1. Extract the methods (and accidentally the properties) coupled into a new concept
public class TelephoneNumber {
private String number;
private String areaCode;
public String telephoneNumber() {
return ("(" + areaCode + ") " + _number);
}
public String areaCode() {
return areaCode;
}
public String number() {
return number;
}
}
final class Person {
private String name;
// 2. Use the new concept
private TelephoneNumber officeTelephone = new TelephoneNumber();
public String name() {
return name;
}
public String telephoneNumber(){
return officeTelephone.getTelephoneNumber();
}
}
[X] 자동
대부분의 IDE는 이 안전한 리팩터링을 구현합니다.
왜 코드가 더 나은가요?
논리 코드는 규칙과 함께 한 곳에 있습니다.
태그
또한보십시오
Refactoring.com
Refactoring Guru
학점
drpepperscott230에서 Pixabay의 이미지
이 기사는 리팩토링 시리즈의 일부입니다.
Reference
이 문제에 관하여(리팩토링 007 - 클래스 추출), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/mcsee/refactoring-007-extract-class-18ei
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
drpepperscott230에서 Pixabay의 이미지
이 기사는 리팩토링 시리즈의 일부입니다.
Reference
이 문제에 관하여(리팩토링 007 - 클래스 추출), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/mcsee/refactoring-007-extract-class-18ei텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)