리팩토링(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 |
댓글