私が含まれていないこれらのelse-if条件をもっとたくさん持っています。循環器系の複雑さを減らすために、これをどのようにリファクタリングすることができますか?私はJavaでこの関数の循環的複雑度を軽減することができますどのように循環的複雑さを減らすために、複数のif文java
if (ONE.equalsIgnoreCase(eachTag.getNodeName()))
{
myclassDto.setOne(formatter
.getElementValueAfterNullCheckWithTrim((Element) eachTag));
}
else if (TWO.equalsIgnoreCase(eachTag.getNodeName()))
{
myclassDto.setTwo(formatter
.getElementValueAfterNullCheckWithTrim((Element) eachTag));
}
else if (THREE.equalsIgnoreCase(eachTag.getNodeName()))
{
myclassDto.setThree(formatter
.getElementValueAfterNullCheckWithTrim((Element) eachTag));
}
else if (FOUR.equalsIgnoreCase(eachTag.getNodeName()))
{
myclassDto.setFour(formatter
.getElementValueAfterNullCheckWithTrim((Element) eachTag));
}
else if (FIVE.equalsIgnoreCase(eachTag.getNodeName()))
{
myclassDto.setFive(formatter
.getElementValueAfterNullCheckWithTrim((Element) eachTag));
}
else if (SIX.equalsIgnoreCase(eachTag.getNodeName()))
{
myclassDto.setSix(formatter
.getElementValueAfterNullCheckWithTrim((Element) eachTag));
}
?
実際のアーキテクチャを考えれば、DTOリファクタリング部分は非常に重要です。スイッチを使用すると –
を使用すると、複雑さが19から17に低下します。しかし、10に減らす必要があります。 – user3431624
私の答えで言ったように、 'switch'を使うことは' if'を使うのと同じように複雑です。それはもっと読みやすい。 DTOのリファクタリングはどうですか?あなたのDTOがデータを受け入れるのに効率的でない、つまり100セットの***()メソッドを持っているなら、あなたはより低い複雑さの数字を得るだろうと思っています。 – SurfMan