天天看點

設計模式之問題集錦(一)

      設計模式的主要資料是《大話設計模式》,第一階段先看看各種模式的基本概念,實作每個模式下的例子。然後在進行了解性的學習和掌握,靈活掌握各種模式的優點,知道某種模式适合那種狀态。現在,例子都已經基本實作了,雖然是跟着書上的例子敲的,但是還是遇到了不少問題。

    問題一:接口問題

     在敲第八章工廠方法模式的時候,遇到了下邊的問題:

設計模式之問題集錦(一)

      這個問題以前也沒有遇到過,不知道從何下手,認真比對代碼後也沒有找到錯誤。隻好請教别人,經過提示,原來自己在定義接口的時候直接寫在了program.cs中,這樣就總是報錯;修改方法就是把下面這個接口重新添加一個接口的控制視窗,這樣就實作了。

namespace 第八章_工廠方法模式
{
    
        interface IFactory
        {
            LeiFeng CreateLeiFeng();
        }
    
}
           

      想想這個錯誤,其實還是對代碼的編寫過程不是很了解,接口類最好給把它寫在屬于它的接口控制台位置,這樣可以保持界面的美觀,容易找出相關事項。

    問題二:享元模式

設計模式之問題集錦(一)

      看到這個提示資訊,我就在代碼中找到Hashtabel,一開始是認為自己少寫了Hashtable這部分的代碼,但是例子中根本就沒有這部分的内容;然後網上查找相關資料了解到,這個表示哈希表,說實話看到這個真是不太了解,具體想幹嘛也不是很清楚,不過看着這個的使用過程中,在命名空間的部分都有using System.Collections;這段代碼,然後在自己所寫的代碼中加上這句後,問題就解決了。

      然後繼續查找這個具體的原因:在.NET work中,Hashtable是System.Collections命名空間提供的一個容器,用于處理和表現類似key/的鍵值對。這才對它有所了解,又仔細對照自己的代碼,發現我一直看的是電子版的,這部分就沒有使用那句代碼,但是書上确實是提示我們添加的。是以今後一定要注意兩者相結合着看,不能完全相信一個東西,百分之百正确的東西是不存在的。

    問題三:解釋器模式

      可以說這部分是自己遇到問題最大的一次,調了好多遍,對了好多遍代碼仍然無法運作,總是提示對象沒有引用

設計模式之問題集錦(一)

     這個真是讓人捉急啊,後來隻好再次求助,搗鼓了老半天才找到問題之所在,還是以前經常遇到的問題

設計模式之問題集錦(一)

      圖中所示的引号中必須加一個空格,否則就會提示上述錯誤。然後又聯想到在學生資訊管理系統和機房收費系統中都遇到過相同的問題,看來無論那種語言,其有很多地方都是共通的,都需要我們認真仔細的編寫和調試。

      對于這部分的學習還需要繼續努力,很多地方自己還隻是停留在表面,需要繼續深入的了解和研究。無論做過多少遍,問題總會有的,但是我們要有一顆不服輸的心,相信不管遇到什麼樣的問題,一定可以解決的。

繼續閱讀