經過幾個小時(重新)搜索,我不能拿出一個正常的抽象類和使用模板模式之間的可解釋的區別。模板方法模式與使用抽象(基類)類的區別?
我唯一看到的是: 同時使用一個抽象類,你都需要實現的所有方法。但是在使用模板方法的時候,你只需要實現那些抽象方法。
有人可以向我解釋模板模式的優點和模板模式與抽象類的主要區別。
p.s.我只是想知道這更好的了我自己的理解/學習
編輯: 謝謝你的快速反應!但是我會更好地解釋它(因爲它已經以正確的方式:))。我知道抽象類是什麼! (以及你必須實現哪些方法!),並且我知道模板模式(一種在類中定義的過程算法的骨架?)的基本思想。我有點困惑,因爲他們看起來像一個!此外,我不是英語,所以我可能會監督一些事情! THNX提前
所以本質區別是:使用模板模式,您可以/必須實例化基類,您沒有抽象類,但只有幾個抽象方法可以在子類中唯一實現? – Dominique 2012-04-02 21:05:33
沒有本質區別,因爲它們根本不同,不能直接比較的概念。這就像問一輛出租車和一輛梅賽德斯的區別。有些出租車使用奔馳,但有些出租車使用菲亞特,甚至人力車或小船。在Java中,模板模式可以作爲抽象類來實現。但它不一定是。例如,許多Spring框架的模板類都是非抽象類。但是當它們是抽象的時候,它們必須遵循Java的抽象類規則(即實現所有方法或保留「抽象」關鍵字)。 – 2012-04-02 22:31:59
但是兩種實現都可以具有某種優勢嗎?我明白你的意思了!抽象類可以「強制」模板方法模式的實現,對吧?但它不一定是一個抽象類。其他(邏輯的)區別是,Abstract(類)是一個構造,Template是一個模式 – Dominique 2012-04-03 07:06:07