2

回到基础,我想详细了解以下代码对后者的重要性..反之亦然..

代码示例1:

<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>

代码示例2:

<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 条件.. 考虑性能、可读性和维护以及更多因素是多么明智?

4

1 回答 1

2

我肯定更喜欢 Code2

  1. 更简单——显式条件指令消失了。

  2. 更短——由于上述原因。

  3. 更容易理解——因为上面的 1. 和 2.。

  4. 更易于维护:如果在处理“F”时需要更改某些内容,则没有机会搞砸“M”的处理。

  5. 更容易扩展。如果将 Code2 的样式表导入另一个,则可以只覆盖两个模板中的一个——使用 Code1,整个整体模板将需要被覆盖,并且某些代码可能会被复制而无需任何更改。

记住 KISS 原则:保持简单,愚蠢...... :)

于 2012-04-08T00:10:17.080 回答