设计模式系列之创建型模式

150 阅读1分钟

欢迎访问我的博客

介绍

创建型模式就是创建对象的模式,抽象了实例化的过程。它帮助一个系统独立于如何创建、组合和表示它的那些对象。也就说对创建对象的过程进行了封装,作为客户程序仅仅需要去使用对象,而不再关心创建对象过程中的逻辑。

单例模式

一个类仅有一个实例,不管什么时候我们要确保该类的只有一个对象实例存在。

这个在游戏中用的比较多,比如打砖块游戏中,在砖块类中和挡板类中都使用了小球这个类。 但是小球这个类的属性都是变化的,而小球只能是一个单独的实例。这个时候就需要单例模式

class Singleton {
    private constructor() { }
    private static instance: Singleton = new Singleton()
    public static getInstance(): Singleton {
        return this.instance
    }
}

简单工厂模式

一个创建对象的类,这个类封装实例化对象行为

这个在游戏中用的比较多,比如打飞机游戏中有多种飞机,可以用工厂模式创建相应的飞机实例

interface Product { }

class Product1 implements Product { constructor() { } }
class Product2 implements Product { constructor() { } }

// 简单工厂
class SimpleFactory {
    public static createProduct(type: number): Product {
        const mp = {
            1: new Product1(),
            2: new Product2()
        }
        return mp[type]
    }
}

// 工厂模式, 定义了一个创建对象的抽象方法, 由子类决定实例化的类
abstract class AbstractFactory {
    public abstract createProduct(type: number): Product
}

class Factory extends AbstractFactory {
    constructor() {
        super()
    }
    public createProduct(type: number): Product {
        const mp = {
            1: new Product1(),
            2: new Product2()
        }
        return mp[type]
    }
}