一.前言 話說十年前,有一個爆發戶,他家有三輛汽車(Benz(奔馳)、Bmw(寶馬)、Audi(奧迪)),還雇了司機為他開車。不過,爆發戶坐車時總是這樣:上Benz車后跟司機說“開奔馳車!”,坐 ...
最近一直在抽時間研究設計模式,之前對設計模式也有一定的了解,但是都沒有平心靜氣的去研究過,只是了解了一些皮毛,最近打算再深入研究一下,重新打開了設計模式的數據,對之前的疑問一個個的刨根問底,今天看了簡單工廠模式和策略模式看的人有點小暈,兩個的大概思路沒有怎么變,都是通過多態去減少代碼的耦合度,怎么看兩個都是如出一轍,最后終於找到了兩個的本質區別,在此和大家分享下: 先上代碼: 簡單工廠模式: 抽象 ...
2013-03-09 00:48 3 3182 推薦指數:
一.前言 話說十年前,有一個爆發戶,他家有三輛汽車(Benz(奔馳)、Bmw(寶馬)、Audi(奧迪)),還雇了司機為他開車。不過,爆發戶坐車時總是這樣:上Benz車后跟司機說“開奔馳車!”,坐 ...
網絡中看到的一篇文章:策略模式與簡單工廠模式區別(轉) 而下面是我的理解: 按一般教程中出現的例子理解: 簡單工廠模式:客戶端傳一個條件進工廠類,工廠類根據條件創建相應的產品類對象,並return給客戶端,供客戶端使用。即客戶端使用的是工廠類生產的產品對象。 策略模式:客戶端創建一個 ...
前言: 簡單工廠模式和策略模式是大部分程序員,在學習設計模式時接觸得最早,或在工作實踐中也是用得相對比較多的兩個設計模式。 一個是創建型,另一個是行為型,然而兩種不同類型的模式,在某些地方也有一絲的相似之處,同時在某種場景下結合使用,能起到特別好的效果。 問題 ...
無論工廠還是策略模式,每個具體工具類(工廠模式)/具體策略類(策略模式)中執行方法名都是一樣的,都和抽象工具(工廠模式)/抽象策略(策略模式)中方法名一樣的 1、簡單工廠類 思想:將創建何種工具交由工廠。將原本邏輯if...else...中“變”的部分抽離為具體工具類,調用方通過在工廠中 ...
雖然看完了《大話設計模式》,但是工廠模式的三種類型之間的差異,理解還不是非常透徹,那么本文就圍繞三者間的差異性來闡述各自的優缺點。 簡單工廠模式 (Simple Factory) 首先定義一個產品類的共同接口 分別有三個產品ProductA、ProductB、ProductC ,均實現 ...
策略模式,需要我們結合簡單工廠模式,更高級地用法可能需要我們掌握Java反射機制。簡單工廠模式我們在最早的時候介紹,我們也談到了一點Java的反射機制。借着學習策略模式的機會,我們順便復習一下簡單工廠模式和反射。 先說說何為策略模式。“策略”我的理解是,對一件事,有不同的方法去做,至於用何種 ...
策略模式實現方式 a) 提供公共接口或抽象類,定義需要使用的策略方法。(策略抽象類) b) 多個實現的策略抽象類的實現類。(策略實現類) c) 環境類,對多個實現類的封裝,提供接口類型的成員量,可以在客戶端中切換。 d) 客戶端 調用環境類 進行不同策略的切換。 策略模式的優點 ...
直接上代碼: 簡單工廠模式: ------------------------------一個抽象類 -------------------------- abstract class AbsClass { //抽象方法:提供一些列的算法操作 public ...