// Dish Interface
interface Dish {
prepare(): void;
}
// Concrete Momo Class
class Momo implements Dish {
prepare(): void {
console.log("Preparing Momo");
}
}
// Concrete Pizza Class
class Pizza implements Dish {
prepare(): void {
console.log("Preparing Pizza");
}
}
// Waiter (Factory) Class
class Waiter {
static orderDish(dishType: string): Dish | null {
switch (dishType) {
case 'Momo':
return new Momo();
case 'Pizza':
return new Pizza();
default:
return null;
}
}
}
// Client Code
const dish1: Dish | null = Waiter.orderDish('Momo');
if (dish1) {
dish1.prepare(); // Output: Preparing Momo
}
const dish2: Dish | null = Waiter.orderDish('Pizza');
if (dish2) {
dish2.prepare(); // Output: Preparing Pizza
}
To embed this program on your website, copy the following code and paste it into your website's HTML: