본문 바로가기
IT라이프

PHP 리팩토링(2)

by zairan 2015. 6. 4.

리팩토링(2)


1. 여러겹의 조건문을 감시절로 전환


function PayAmount() 

{

$num = DB::getRate();


$result = '';

if (_isDead) {

$result = $num / 100;

} else {

if (is_Seperated) {

$result = $num * 0.1:

} else {

if (is_Retired) {

$result = $num * 0.3:

} else {

$result = $num * 0.5;

}

}

}


return $result;

}


예를 들어 이런 메서드가 있다면, 우선 계산식들을 모두 메서드로 전환


function deadAmount($num)

{

return $num / 100;

}


function seperatedAmount($num)

{

return $num * 0.1:

}


function retiredAmount($num)

{

return $num * 0.3:

}


function normalAmount($num)

{

return $num * 0.5;

}


======>>>>>>>> 1 차 리팩토링

계산식을 메서드화 시켜서 넣은 후


function PayAmount() 

{

$num = DB::getRate();


$result = '';

if (_isDead) {

$result = $this->deadAmount($num);

} else {

if (is_Seperated) {

$result = $this-> seperatedAmount($num);

} else {

if (is_Retired) {

$result = $this-> retiredAmount($num);

} else {

$result = $this-> normalAmount($num);

}

}

}


return $result;

}


======>>>>>>>> 2 차 리팩토링

다중 if else 문을 if 만 사용해서 바로 return 처리 시켜버리자.


function PayAmount() 

{

$num = DB::getRate();


// $result = '';  // result 삭제

if (_isDead) return $this->deadAmount($num);

if (is_Seperated) return $this-> seperatedAmount($num);

if (is_Retired) return $this-> retiredAmount($num);

return $this-> normalAmount($num);


}





반응형

'IT라이프' 카테고리의 다른 글

cocoaPods 설치  (0) 2016.11.15
CocoaPods 설치 하기  (0) 2016.11.10
PHP 리팩토링(1)  (0) 2015.06.04
Laravel 5 루트 설정  (0) 2015.05.30
[PHP 보안] 2. 웹 어플리케이션 보안 (2)  (0) 2015.05.09

댓글