복잡하게 커져 버린 코드의 문제를 단순화하고, 작게 나누는 기술이

코드의 가독성, 보수성 향상을 위한 핵심이다.

변수와 상수

enum class eState
{
    Work,   // 걷기 상태
    Jump,   // 점프 상태
    Attack  // 공격 상태
};

 enum class eDirection
 {
     North,
     South
 }

조건식과 계산식

const bool isJump   = y > 0.0f;
const bool isDamage = ( state == STATE_DAMAGE );
const bool isDash   = (speed >= 10.0f) && (!isJump) && (!isDamage);
if ( isDash )
{
    ...
}

	const int dressFlag = dressItem->GetDressFlag(); 
	const bool isNoHair = dressFlag & SA_NOHAIR;
	const bool isNoBody = dressFlag & SA_NOBODY;
	const bool isNoFace = dressFlag & SA_NOFACE;
	const bool isNoHat  = dressFlag & SA_NOHAT;

	if (isNoHair) { ApplyDress(character, HAIR); }
	if (isNoHair) { ApplyDress(character, BODY); }
	if (isNoHair) { ApplyDress(character, FACE); }
	if (isNoHair) { ApplyDress(character, HAT); }

계산식 또는 조건식을 함수화 하자.