• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 成長的煩惱:初涉設計模式[2]

    發表于:2010-03-01來源:作者:點擊數: 標簽:設計初涉煩惱成長模式
    成長的煩惱:初涉設計模式[2] 軟件測試 CSort *pSort = new CBubbleSort; CClient.ListSort(pSort); 如果要改成快速排序,只要如此: CSort *pSort = new CQ uickSort; CClient.ListSort(pSort); 測試交差,當然經理自己也有想法,又讓小王試了另外的幾個算

      成長的煩惱:初涉設計模式[2]  軟件測試

      CSort *pSort = new CBubbleSort;

      CClient.ListSort(pSort);

      如果要改成快速排序,只要如此:

      CSort *pSort = new CQuickSort;

      CClient.ListSort(pSort);

      測試交差,當然經理自己也有想法,又讓小王試了另外的幾個算法,小王都能輕松的完成。策略模式的作用在這里淋漓盡致的發揮了,小王心里特別有成就感。

      過了些日子,客戶提出需要按文件名、日期進行排序,小王覺得這還是比較簡單的,更改了一下UML圖:

      改代碼的主要工作是copy-paste,就四個函數,也就很快完成了。

      客戶的需求是不會停止的,為了加強功能,提出需要按文件大小、文件的類型排序,天知道客戶還會提出什么要求。

      “再也不能這樣活”,小王聽著歌,陷入了沉思。

      “排序的算法和比較算法分開來會如何呢?把它們脫耦,使得二者可以獨立地變化。這句話怎么這么熟悉,我肯定在哪里看到過?!毙⊥趺Ψ_《設計模式》,開始查閱。

      “Got it,這不就是橋梁模式(Bridge)?!币魂囆老?,馬上就干。半個小時后,UML圖出來了,如下:

      客戶端代碼如下:

      CSort *pSort = new CQuickSort;

      CCompareType *pType = new CNameCompare;

      pSort->SetType(pType);

      pSort->Sort(pList);

      哈哈,客戶們,你們盡管提要求吧。

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>