所以一個類別以實作 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
沒有留言:
張貼留言