我正在從事的一個項目涉及3個不同的系統/平臺。 C#,Java和XSLT。我有一些簡單的算法(只是一堆條件),用僞代碼表示爲:如何將算法導出到其他語言?
if inputParameter1 is equal to 1
return "one"
else if inputParameter2 is equal to 5
return "five" concatenated with inputParameter1
else
return "not found"
這樣簡單的東西。
我試圖找出一個機制,將:
- 讓我寫的算法一次
- 能夠在每個系統的本地語言(C#,Java的執行算法,並XSL)
- 在算法更新時,每個系統(C#,Java和XSL)都始終使用最新版本的算法。
所以在我的例子闡述,在C#的表示應該是:
public string TheMethod(int inputParameter1, int inputParameter2)
{
if (inputParameter1 == 1)
{
return "one";
}
else if (inputParameter2 == 5)
{
return string.Concat("five", inputParameter1.ToString());
}
else
{
return "not found";
}
}
和XSLT的表示應該是:
<xsl:template name="TheMethod">
<xsl:param name="inputParameter1" />
<xsl:param name="inputParameter2" />
<xsl:choose>
<xsl:when test="$inputParameter1 = 1">
<xsl:text>one</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:choose>
<xsl:when test="$inputParameter2 = 5">
<xsl:text>five</xsl:text>
<xsl:value-of select="$inputParameter1" />
</xsl:when>
<xsl:otherwise>
<xsl:text>Not Found</xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
希望你明白我的意思。
我該如何以通用方式表達算法並能夠自動將其轉換爲C#,Java或XSL?
謝謝!
-Mike
+1提到你可以在XSLT中實現它。 – Matt 2009-08-13 02:28:05
雖然不是我所希望的解決方案,但這是目前爲止的最佳答案 – Mike 2009-11-16 19:28:03