看看用TypeScript怎样实现常见的设计模式,顺便复习一下。
学模式最重要的不是记UML,而是知道什么模式可以解决什么样的问题,在做项目时碰到问题可以想到用哪个模式可以解决,UML忘了可以查,思想记住就好。
这里尽量用原创的,实际中能碰到的例子来说明模式的特点和用处。

简单工厂模式 Simple Factory

特点:把同类型产品对象的创建集中到一起,通过工厂来创建,添加新产品时只需加到工厂里即可,也就是把变化封装起来,同时还可以隐藏产品细节。

用处:要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
        
		

网友评论