factory
工厂模式 - 定义创建对象的接口,让子类决定实例化哪个类。
函数签名
typescript
function createFactory<T>(): FactoryRegistry<T>
interface FactoryRegistry<T> {
register: (type: string, creator: (...args: any[]) => T) => void
create: (type: string, ...args: any[]) => T
has: (type: string) => boolean
getTypes: () => string[]
unregister: (type: string) => void
}使用示例
typescript
import { createFactory } from 'zcw-shared/functions/patterns/factory'
interface Logger {
log(message: string): void
}
const factory = createFactory<Logger>()
factory.register('console', () => new ConsoleLogger())
factory.register('file', (path) => new FileLogger(path))
const logger = factory.create('console')
logger.log('Hello')工厂模式 - 封装对象创建逻辑!