[設計模式]1. 模板設計模式

畫類圖的設計模式你能記住嗎?

畫類圖的設計模式你能知道什麼情況下用嗎?

我不畫類圖,我不講框架,我只講故事。

1. 場景

關鍵字:組件

我是個學電路的,我呢想造個模塊賣出去,比如GPS模塊,別人拿到我的模塊就能拿到經緯度數據,我怎麼辦呢?

我總不能把電路圖給別人吧,那誰還買我的模塊呢! 我就把自己的電路封裝到這麼一個集成電路中,只給別人流出接口即可,比人想用你的模塊,就得實現你的接口。

有時候你這種組件比較大,比如:電腦主板(如下圖),電腦主板生產商可不給你生產CPU,內存的,他只是給你留了個CPU和內存的接口(看看下圖),我自己搞一個CPU或者內存,只要跟主板的接口一樣,插上去,也可以使用了。但人家主板怎麼用你的CPU內存,你不知道吧,對嘍,人家集成進去了,不讓你看。也就是說,廠商把需要你自己實現的組件留一個接口出來,把對組件的調用封裝起來。

想想現實生活中,主板生產商(如:華碩,技嘉,微星,升技,映泰) + 硬盤(希捷,西部數據)+CPU(因特爾,高通)… ===> PC,這個===過程就是電腦集成,比如:聯想,IBM等,所謂的攢機的。如果你站在主板生產商的記住看,理解一下模板

 

2.案例解決

能認識下面這些東西吧

  • 從0到1構建:

比如: 我做個電機,電機輸入時電,輸出的是動力。電機內部當然我不想讓客戶自己動,但輸入的電力和輸出的動力需要用戶自己來設計,你是驅動啥呢?用戶把軸上連接葉片就是風扇,連上刀片就是豆漿機,連上車軲轆就是電動車。

代碼實現:(Java語法)

1. 電機爲Abstract類,需要輸入輸出的作爲abstract方法,需要輸入的作爲參數。

2. 電風扇類集成電機類,實現abstract方法,即可。

  • 重構現有代碼:

比如:我有電風扇,豆漿機,電動車。發現他們都是:接通電源,啓動,輸出動力。那麼我們就可以把這些共性提出來。

 

3. 實現一:繼承Abstract類

對比一下實現,想想上面的例子,Engine1類是不是提出的組件,GPS模塊。

調用:

ElectricFan1 fan1 = new ElectricFan1();

fan1.setEle(new Object());

fan1.start();

邏輯:這種方式電機是風扇的一部分。

 

4. 實現二:擴展接口

 

這個是以計算機爲主的

5.比較:

不比較了,自己體會吧。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章