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>

代わりにcode1で使用できますが<xsl:choose/>、それは重要ではありません.. ifおよびelse条件の使用よりも、条件が一致するさまざまなテンプレートを使用することがいかに賢明かについて議論したいと思います..パフォーマンス、読みやすさ、メンテナンス、およびその他の多くの要因を考慮して?

4

1 に答える 1

2

私は間違いなく Code2 を好むでしょう:

  1. 単純化 -- 明示的な条件付き命令はなくなりました。

  2. 短い-- 上記の理由により。

  3. 上記の 1. と 2. により、理解しやすくなります。

  4. 保守が容易: 「F」の処理で何かを変更する必要がある場合、「M」の処理を台無しにする機会はありません。

  5. より簡単に拡張できます。Code2 のスタイルシートが別のスタイルシートにインポートされた場合、2 つのテンプレートの 1 つだけをオーバーライドすることができます。Code1 では、モノリシックなテンプレート全体をオーバーライドする必要があり、一部のコードは変更せずに複製するだけです。

KISS の原則を覚えておいてください: Keep It Simple, Stupid ... :)

于 2012-04-08T00:10:17.080 に答える