2013-10-28 24 views
2

我正在從一個模板生成電子郵件的系統上工作。模板已經由業務供應,並且它們含有類似於此的代碼行:如何從演示文稿中刪除計算

Thank you for your payment of @((decimal.Parse(Model.PaymentAmount)/100).ToString("C")) 

在這種情況下PaymentAmount預期爲一個整數的字符串表示(例如所要求的輸出£5.54。將提供爲「554」)。

現在,我認爲表示層中不應該有計算 - 在這種情況下有/ 100計算和解析。我已經提出了一些針對此方案,其中轉化在代碼模板之前進行的,得到改變的觀點,如:

Thank you for your payment of @Model.PaymentAmount.ToString("C") 

我們對項目一套合理的主管,技術架構師,但我無法說服他們有這個好的理由。

任何人都可以幫我提出一個論據,向建築師介紹如何讓後面的代碼片段實現在前者 - 或者如果你不同意這種方法,爲什麼?

回答

1

首選解決方案#2的一個原因是,如果出於某種原因,某人將文本傳遞給無法解析爲小數的模板,將會遇到麻煩。有許多可能性:

  1. 非數字文本。
  2. 爲不同的文化格式化的數字。

因此,方法#2中的類型安全性要好得多。從架構的角度來看,填充模板的人不需要知道實現細節,而在方法#1中,他或她需要知道需要提供以特定方式格式化的字符串。

1

對我來說第二種方法更好,我推薦它,因爲在軟件工程模式中,你將學習的主要事情是嘗試使事物分離和奉獻,因此計算處理應該是分開的,如果項目大小是大於分割和隔離的東西很容易維護,但是如果尺寸很小或個人使用,那麼這只是練習。

相關問題