設計模式到底怎麼用疑惑,求助高人留步,不勝感激
工廠方法 工廠加工產品的地方,
工廠模式 還分等級 大概主要分三級吧
1>最簡單的想法 一個工廠類 一個抽象的產品 很多具體的產品
我可以透過工廠產生產品,所有產品的new 都依賴這個工廠
如果 這個工廠掛了 那麼就程式就癱瘓了. 這大概就是說的簡單工廠吧
用java語法大概是:抽象產品 產品 = 具體工廠 . 工廠方法(引數告訴工廠要生產什麼);---->這樣就獲取產品了
2>具體 工廠方法 和上面差不多 有一個抽象工廠 一個抽象產品 n多具體產品
不同的是 額外增加了 具體工廠 具體工廠幹什麼呢
具體工廠 實現抽象工廠的產品加工方法(也就是實現抽象工廠的介面)
一個具體工廠 對應 一個具體產品 一對一的生產
用java語法大概是:
抽象工廠 工廠 = new 具體工廠();
抽象產品 產品 = 工廠.方法();------> 這樣就獲取產品了
3>抽象工廠方法 和工廠方法類似
不同的是 抽象工廠方法 的抽象工廠 不止一個抽象工廠方法
比如 同樣是加工產品 比如這個廠子不單一生產一類產品了
原來只生產 水果 現在還生產 蔬菜
抽象工廠 裡就有 2個抽象 方法 一個蔬菜一個水果
比如生產 南方水果和南方蔬菜 就有
(一個抽象工廠 2個具體工廠(南北) 蔬菜抽象 水果抽象 具體蔬菜(南北) 具體水果(南北))
抽象工廠 工廠 = new 具體南方工廠();
南方水果抽象 水果 = 工廠.水果(); 南方蔬菜抽象 蔬菜 = 工廠.蔬菜();//北方一樣
---------------現在我才疑惑
比如我要做個 新增資料的功能 如果這麼寫
--------------如果把表設計成類似下面這樣
產品名稱 產品型別1 型別2
香蕉 水果類 南方
蘋果 水果類 北方
白菜 蔬菜類 北方
茄子 蔬菜類 南方
然後定義 1個 bean
名稱欄位 型別欄位
然後 錄入的時候 直接儲存在資料庫裡 就行了
然後查詢的時候 要產品 就用sql根據條件 查詢這個表 不管南北 菜果 不都能查出來
然後方法哦 定義好的實體裡 ,資料不就出來了嗎
------------------那麼如果用 工廠模式 去定義類
比如新增 一個產品記錄
從頁面傳過來值 然後初步判斷 是什麼 比如 是南方的水果 那麼就用工廠 製作 南方水果類 儲存資料然後新增 到資料庫
如果查詢 這樣不就會有很多的 類對應水果產品嗎 就算把水果產品的共同屬性 放在一個類裡 然後裝飾這個類構成需要的水果
那樣的話 類也會很多,
------所以我不明白.有沒有老師能提點下.我想學好OO的,或者是我沒描述清楚,我大概就是上面這個意思,可能表達不到位.
請老師幫助幫助.高手賜教,小弟不勝感激
工廠模式 還分等級 大概主要分三級吧
1>最簡單的想法 一個工廠類 一個抽象的產品 很多具體的產品
我可以透過工廠產生產品,所有產品的new 都依賴這個工廠
如果 這個工廠掛了 那麼就程式就癱瘓了. 這大概就是說的簡單工廠吧
用java語法大概是:抽象產品 產品 = 具體工廠 . 工廠方法(引數告訴工廠要生產什麼);---->這樣就獲取產品了
2>具體 工廠方法 和上面差不多 有一個抽象工廠 一個抽象產品 n多具體產品
不同的是 額外增加了 具體工廠 具體工廠幹什麼呢
具體工廠 實現抽象工廠的產品加工方法(也就是實現抽象工廠的介面)
一個具體工廠 對應 一個具體產品 一對一的生產
用java語法大概是:
抽象工廠 工廠 = new 具體工廠();
抽象產品 產品 = 工廠.方法();------> 這樣就獲取產品了
3>抽象工廠方法 和工廠方法類似
不同的是 抽象工廠方法 的抽象工廠 不止一個抽象工廠方法
比如 同樣是加工產品 比如這個廠子不單一生產一類產品了
原來只生產 水果 現在還生產 蔬菜
抽象工廠 裡就有 2個抽象 方法 一個蔬菜一個水果
比如生產 南方水果和南方蔬菜 就有
(一個抽象工廠 2個具體工廠(南北) 蔬菜抽象 水果抽象 具體蔬菜(南北) 具體水果(南北))
抽象工廠 工廠 = new 具體南方工廠();
南方水果抽象 水果 = 工廠.水果(); 南方蔬菜抽象 蔬菜 = 工廠.蔬菜();//北方一樣
---------------現在我才疑惑
比如我要做個 新增資料的功能 如果這麼寫
--------------如果把表設計成類似下面這樣
產品名稱 產品型別1 型別2
香蕉 水果類 南方
蘋果 水果類 北方
白菜 蔬菜類 北方
茄子 蔬菜類 南方
然後定義 1個 bean
名稱欄位 型別欄位
然後 錄入的時候 直接儲存在資料庫裡 就行了
然後查詢的時候 要產品 就用sql根據條件 查詢這個表 不管南北 菜果 不都能查出來
然後方法哦 定義好的實體裡 ,資料不就出來了嗎
------------------那麼如果用 工廠模式 去定義類
比如新增 一個產品記錄
從頁面傳過來值 然後初步判斷 是什麼 比如 是南方的水果 那麼就用工廠 製作 南方水果類 儲存資料然後新增 到資料庫
如果查詢 這樣不就會有很多的 類對應水果產品嗎 就算把水果產品的共同屬性 放在一個類裡 然後裝飾這個類構成需要的水果
那樣的話 類也會很多,
------所以我不明白.有沒有老師能提點下.我想學好OO的,或者是我沒描述清楚,我大概就是上面這個意思,可能表達不到位.
請老師幫助幫助.高手賜教,小弟不勝感激
相關文章
- 各位高手請幫忙,不勝感激!!!!
- 對設計模式應用的疑惑設計模式
- 求助:關於應用設計模式設計模式
- 請大牛指出這段js程式碼的可讀性到底差在哪裡。不勝感激JS
- 設計模式怎麼用UML圖表示?設計模式
- 李喆:程式設計師到底怎麼了程式設計師
- 請問工廠模式到底怎麼用?用在什麼地方?謝謝!模式
- 哪位是真正的大師?幫小弟解決這個問題,不勝感激
- sync.WaitGroup疑惑,新手求助AI
- 設計模式該怎麼學呀設計模式
- 遊戲設計的作品集到底該怎麼做?遊戲設計
- iOS_Model層到底怎麼用?iOS
- 求助:簡單遊戲DCI應用設計遊戲
- 你為什麼總是學不會設計模式?設計模式
- 育碧設計師:“開放世界”遊戲到底應該怎麼做?遊戲
- MIUI 7兒童模式怎麼用 MIUI 7兒童模式設定教程UI模式
- 五分鐘自學程式設計:程式設計師到底怎麼學資料結構?!程式設計師資料結構
- synchronized 到底該不該用?synchronized
- 美團VS餓了麼,到底誰更勝一籌?
- 設計模式第二彈: 不知道怎麼提高程式碼複用性?看看這幾種設計模式吧!設計模式
- Webpack 中的 sideEffects 到底該怎麼用?WebIDE
- 程式設計師做的不開心怎麼辦?程式設計師
- 高人指點:剛學Struts,例子不完全執行,求助啊
- 雲端計算到底是怎麼玩的?
- 五分鐘自學程式設計:計算機網路到底應該怎麼學?!程式設計計算機網路
- 怎麼樣設計一個成熟的商業模式模式
- 設計模式 --並不簡單的工廠模式設計模式
- 學Java程式設計難不難?怎麼才能學好?Java程式設計
- 求助大佬 !!!wireshark 怎麼 mock 介面啊Mock
- 屏保設定不生效怎麼做?
- 什麼是設計模式設計模式
- 求助!!linux的升級安裝到底要怎樣做呢!!(轉)Linux
- 什麼是設計模式?為什麼要使用設計模式?有什麼好處?設計模式
- 程式設計師35歲不焦慮,該怎麼做?程式設計師
- 到底JS柯里化在專案中怎麼用?JS
- C++11 關鍵字 const 到底怎麼用?C++
- 設計複合應用程式:設計模式設計模式
- 免程式設計應用怎麼控制App風險?程式設計APP