看看用TypeScript怎樣實現常見的設計模式,順便復習一下。
學模式最重要的不是記UML,而是知道什么模式可以解決什么樣的問題,在做項目時碰到問題可以想到用哪個模式可以解決,UML忘了可以查,思想記住就好。
這里盡量用原創(chuàng)的,實際中能碰到的例子來說明模式的特點和用處。
簡單工廠模式 Simple Factory
特點:把同類型產品對象的創(chuàng)建集中到一起,通過工廠來創(chuàng)建,添加新產品時只需加到工廠里即可,也就是把變化封裝起來,同時還可以隱藏產品細節(jié)。
用處:要new多個同一類型對象時可以考慮使用簡單工廠。
注意:對象需要繼承自同一個接口。
下面用TypeScript寫一個槍工廠來看看簡單工廠模式:
enum GunType{ AK, M4A1, }interface Shootable{ shoot(); }abstract class Gun implements Shootable{ // 抽象產品 - 槍 abstract shoot(); }class AK47 extends Gun{ //具體產品 - AK47 shoot(){ console.log('ak47 shoot.'); } }class M4A1 extends Gun{ //具體產品 - M4A1 shoot(){ console.log('m4a1 shoot.'); } }class GunFactory{ static createGun(type: GunType): Gun{ switch(type){ case GunType.AK: return new AK47(); case GunType.M4A1: return new M4A1(); &nb