2012-04-07 6 views
2

Возвращаясь к основам, я хотел бы знать в деталях значение кода ниже над последним .. или наоборот ..разница между ними, если/иначе условия и условия совпадения шаблона

Код sample1:

<xsl:template match="Gender"> 
    <xsl:copy> 
     <xsl:if test=".='M'"> 
      <xsl:text>Male</xsl:text> 
     </xsl:if> 
     <xsl:if test=".='F'"> 
      </xsl:text>Female</xsl:text> 
     </xsl:if> 
    </xsl:copy> 
</xsl:template> 

Код sample2:

<xsl:template match="Gender[.='M']"> 
    <xsl:copy> 
     <xsl:text>Male</xsl:text>  
    </xsl:copy> 
</xsl:template> 
<xsl:template match="Gender[.='F']"> 
    <xsl:copy> 
     <xsl:text>Female</xsl:text>  
    </xsl:copy> 
</xsl:template> 

я мог бы использовать вместо <xsl:choose/> в code1, это не точка .. Я хотел бы обсудить о том, как мудр использовать различные тэ шаблоны с соответствующими условиями над использованием условий if и else .. с учетом производительности, удобочитаемости и обслуживания и многих других факторов?

ответ

2

Я определенно предпочитаю Кодекса2:

  1. Simpler - ушли явные условные инструкции.

  2. Сокращенный - из-за вышеизложенного.

  3. Легче понять - из-за 1. и 2. выше.

  4. Легче поддерживать: Если что-то необходимо изменить при обращении с «F», нет никакой возможности испортить обработку «М».

  5. Гораздо легче расширить. Если таблица стилей Code2 импортируется в другую, можно переопределить только один из двух шаблонов - с кодом 1 весь монолитный шаблон нужно будет переопределить, а некоторый код, возможно, будет просто реплицирован без каких-либо изменений.

Помните принцип KISS,: Keep It Simple, Stupid ... :)

+0

:-) (15 символов!) –

+0

@ infantprogrammer'Aravind ': Вы можете. –

Смежные вопросы