贴点重构的,以后我也会多写些重构的文章,因为,我觉得重构时做软件的必须学的东西。而现实是大家对重构不怎么感兴趣,但是重构确实是非常重要的,不然代码就会慢慢的老死。
//
重构片段1
switch (m_nPhase) //
{
case 0: //LABC
{
(pBaseTestItem->m_baseElementList)[Ua]
= m_testvoltage;
(pBaseTestItem->m_baseElementList)[Ub]
= m_testvoltage;
(pBaseTestItem->m_baseElementList)[Uc]
= m_testvoltage;
(pBaseTestItem->m_baseElementList)[Ia]
= m_testcurrent;
(pBaseTestItem->m_baseElementList)[Ib]
= m_testcurrent;
(pBaseTestItem->m_baseElementList)[Ic]
= m_testcurrent;
}
break;
case 1: //LA
{
(pBaseTestItem->m_baseElementList)[Ua]
= m_testvoltage;
(pBaseTestItem->m_baseElementList)[Ub]
= "0.000";
(pBaseTestItem->m_baseElementList)[Uc]
= "0.000";
(pBaseTestItem->m_baseElementList)[Ia]
= m_testcurrent;
(pBaseTestItem->m_baseElementList)[Ib]
= "0.000";
(pBaseTestItem->m_baseElementList)[Ic]
= "0.000";
}
break;
case 2: //LB
{
(pBaseTestItem->m_baseElementList)[Ua]
= "0.000";
(pBaseTestItem->m_baseElementList)[Ub]
= m_testvoltage;
(pBaseTestItem->m_baseElementList)[Uc]
= "0.000";
(pBaseTestItem->m_baseElementList)[Ia]
= "0.000";
(pBaseTestItem->m_baseElementList)[Ib]
= m_testcurrent;
(pBaseTestItem->m_baseElementList)[Ic]
= "0.000";
}
break;
case 3: //LC
{
(pBaseTestItem->m_baseElementList)[Ua]
= "0.000";
(pBaseTestItem->m_baseElementList)[Ub]
= "0.000";
(pBaseTestItem->m_baseElementList)[Uc]
= m_testvoltage;
(pBaseTestItem->m_baseElementList)[Ia]
= "0.000";
(pBaseTestItem->m_baseElementList)[Ib]
= "0.000";
(pBaseTestItem->m_baseElementList)[Ic]
= m_testcurrent;
}
break;
default:
break;
}
//===========表驱动重构第一次====================
typedef
struct {
int
nPhase; //Ïàλ,
0:LABC,1:LA,2:LB,3:LC
bool bUa; //AÏàµçѹÊÇ·ñÉèÖÃ
bool bUb; //BÏàµçѹÊÇ·ñÉèÖÃ
bool bUc; //CÏàµçѹÊÇ·ñÉèÖÃ
bool bIa; //AÏàµçÁ÷ÊÇ·ñÉèÖÃ
bool bIb; //BÏàµçÁ÷ÊÇ·ñÉèÖÃ
bool bIc; //CÏàµçÁ÷ÊÇ·ñÉèÖÃ
}OutPutVoltageCurrent;
OutPutVoltageCurrent outColtageCurrent[] =
{
{0,1,1,1,1,1,1},
{1,1,0,0,1,0,0},
{2,0,1,0,0,1,0},
{3,0,0,1,0,0,1}
}
void
CAddItem::PM_SetOutTestVoltageCurrent(int
nPhase, CBaseTestItem* pBaseTestItem, float fVoltage, float fCurrent)
{
if
(! pBaseTestItem) {
return ;
}
if
(outColtageCurrent[nPhase].bUa) {
(pBaseTestItem->m_baseElementList)[Ua] =
fVoltage;
} else {
(pBaseTestItem->m_baseElementList)[Ua] =
0.0f;
}
if
(outColtageCurrent[nPhase].bUb) {
(pBaseTestItem->m_baseElementList)[Ub] =
fVoltage;
} else {
(pBaseTestItem->m_baseElementList)[Ub] =
0.0f;
}
if
(outColtageCurrent[nPhase].bUc) {
(pBaseTestItem->m_baseElementList)[Uc] =
fVoltage;
} else {
(pBaseTestItem->m_baseElementList)[Uc] =
0.0f;
}
if
(outColtageCurrent[nPhase].bIa) {
(pBaseTestItem->m_baseElementList)[Ia] =
fCurrent;
} else {
(pBaseTestItem->m_baseElementList)[Ia] =
0.0f;
}
if
(outColtageCurrent[nPhase].bIb) {
(pBaseTestItem->m_baseElementList)[Ib] =
fCurrent;
} else {
(pBaseTestItem->m_baseElementList)[Ib] =
0.0f;
}
if
(outColtageCurrent[nPhase].bIc) {
(pBaseTestItem->m_baseElementList)[Ic] =
fCurrent;
} else {
(pBaseTestItem->m_baseElementList)[Ic] =
0.0f;
}
}
//===============第二次重构=====================
void
CAddItem::PM_SetOutTestVoltageCurrent(int
nPhase, CBaseTestItem* pBaseTestItem,
float fVoltage, float fCurrent)
{
if
(! pBaseTestItem) {
return ;
}
(pBaseTestItem->m_baseElementList)[Ua] =
0.0f;
(pBaseTestItem->m_baseElementList)[Ub] =
0.0f;
(pBaseTestItem->m_baseElementList)[Uc] =
0.0f;
(pBaseTestItem->m_baseElementList)[Ia] =
0.0f;
(pBaseTestItem->m_baseElementList)[Ib] =
0.0f;
(pBaseTestItem->m_baseElementList)[Ic] =
0.0f;
if
(outColtageCurrent[nPhase].bUa) {
(pBaseTestItem->m_baseElementList)[Ua] =
fVoltage;
}
if
(outColtageCurrent[nPhase].bUb) {
(pBaseTestItem->m_baseElementList)[Ub] =
fVoltage;
}
if
(outColtageCurrent[nPhase].bUc) {
(pBaseTestItem->m_baseElementList)[Uc] =
fVoltage;
}
if
(outColtageCurrent[nPhase].bIa) {
(pBaseTestItem->m_baseElementList)[Ia] =
fCurrent;
}
if
(outColtageCurrent[nPhase].bIb) {
(pBaseTestItem->m_baseElementList)[Ib] =
fCurrent;
}
if
(outColtageCurrent[nPhase].bIc) {
(pBaseTestItem->m_baseElementList)[Ic] =
fCurrent;
}
}
其实上面的代码还可以进一步重构,但是我觉得没有必要再深入了,因为要重构的其它地方还很多。重构要的是稳步小进。