TypeScript Design Patterns
TypeScript Design Patterns
This post uses Code Hike's slideshow layout to present four classic design patterns. Use the navigation controls below to step through each pattern.
Singleton
The Singleton pattern restricts a class to a single instance. This is useful for shared resources like database connections or configuration managers. The private constructor prevents direct instantiation. Instead, callers use getInstance() which lazily creates the single instance on first access.
1 / 4
singleton.ts
class DatabaseConnection {private static instance: DatabaseConnection;private connected = false;private constructor() {}static getInstance(): DatabaseConnection {if (!DatabaseConnection.instance) {DatabaseConnection.instance = new DatabaseConnection();}return DatabaseConnection.instance;}connect(): void {this.connected = true;console.log("Connected to database");}isConnected(): boolean {return this.connected;}}// Both variables reference the same instanceconst db1 = DatabaseConnection.getInstance();const db2 = DatabaseConnection.getInstance();console.log(db1 === db2); // true