2011年4月21日 星期四

Why implement IFormattable ?

關於昨日在 Effective C# 讀書會中, 討論為何要Implement IFormattable 一事. 我Google了一陣子, 希望能發現相關 MSDN Library 架構能應用IFormattable, 以達到架構套用的目的, 不過很可惜並未找到具體結果.
所以一個類別以實作 IFormattable 方式, 達到具有自訂 ToString() 的功能, 在和不實作而直接提供自訂ToString() 的差別上, 僅剩下語意上的的告知, 明白的告訴使用者: I am a formattable class! 否則Who know you are formattable?
我還是希望之後能發現確實有相關 MSDN Library 架構能應用 IFormattable, 讓此Implementation 更加合理化, 也發揮 Microsoft .Net Team 用心設計此一系列 Formatting Patterns (IFormattable,IFormatProvider, ICustomFormatter) 的優點. 不過, 我們若能設計自己的 Framework, 一樣可以用到 IFormattable 的好處, 只不過這個好處本質其實只是來自於設計良好的 Interface 的原生優點.

關於目前找到針對 IFormattable 較清楚精闢的討論, 是以下的部落格, 大家參考:
http://geekswithblogs.net/ftom/archive/2008/08/29/tostring-and-the-underestimated-iformattable---iformatporvider-icustomformatter.aspx

沒有留言: