設計模式初學者系列—重構到Bridge模式

發表于:2010-03-09來源:作者:點擊數: 標簽:重構設計Bridge初學者模式
設計模式初學者系列—重構到Bridge模式 軟件測試 在這篇文章中,我將以記述我整個重構過程的方式來得到橋接模式,也許很多人學習設計模式都有我這樣的歷程,看過很多模式的書籍,但還是無從下手,很多人都說模式往往是重構得來的,但是如何重構?如何去思考?

  設計模式初學者系列—重構到Bridge模式   軟件測試 

     在這篇文章中,我將以記述我整個重構過程的方式來得到橋接模式,也許很多人學習設計模式都有我這樣的歷程,看過很多模式的書籍,但還是無從下手,很多人都說模式往往是重構得來的,但是如何重構?如何去思考?

  在這個設計模式初學者系列里我將改變以前的風格,今后每一篇都以真實的項目重構例子來描述重構到模式,所有的描述都來源于現實,如果沒有現實的案例那我寧愿不寫。希望以這種方式記錄能夠給一些像我一樣曾經很困惑的朋友幫助。

  背景

  PM:小Y,你看,這個Dundas的Chart(注1)控件效果很好,功能也很強大,但是使用的時候太麻煩了,你能不能將其封裝一下,這樣其他人使用的時候也簡單多了

  我:嗯,這個我看看吧,應該可以。

  注1

  Dundas Chart控件是一個既可以用在WinForm里又可以用在WebForm里的圖表控件,可以繪制各種曲線圖、柱狀圖和餅圖等等,功能十分強大。在本文中我們要了解Dundas Chart的三個概念:Chart、ChartArea、Series

  如是我拿起紙和筆去收集需求

  A:這個我覺得當這個控件上的一個Series的Enabled屬性值變化的時候應該觸發一個事件,這樣我們就可以在這個事件觸發時干些事情了,但是現在沒有,我不得不做很多工作

  B:和A一樣的問題,我覺得控件上一個ChartArea的Visible屬性值變化時也應該觸發一個事件。

  C: ………

  我的頭慢慢的大起來,需求收集了一大堆,怎么弄呢?我還是做了下面這樣的個設計

  第一次重構:使用繼承封裝Chart原生API,使其更好使用

  我相信很多人第一個設計也許是這樣,一下子就想到繼承,這樣我們可以復用Dundas Chart里面的很多東西了,以免重寫很多東西。

  下面只選取一段Code:

  public class JurassicSeries : Series

  {

  //...更多擴展

  public event EventHandler SeriesEnabled;

  protected void OnSeriesEnabled()

  {

  if (SeriesEnabled != null)

  SeriesEnabled(this, new EventArgs());

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97