设计模式---工厂模式

在JavaScript中,工厂模式是一种创建对象的设计模式,而无需直接实例化类。工厂模式抽象了对象的创建过程,允许我们根据传入的参数返回不同类型的对象。

以下是一个简单的JavaScript工厂模式的例子:

// 定义一个工厂函数
function CarFactory(type, color) {
// 创建一个空对象
var car = {};
// 根据传入的参数设置对象的属性和方法
switch (type) {
case 'sedan':
car.doors = 4;
car.type = 'Sedan';
break;
case 'suv':
car.doors = 5; // 假设SUV有5个门
car.type = 'SUV';
break;
// 可以添加更多车型
default:
throw new Error('Unknown car type');
}
car.color = color;
// 可以添加通用的方法
car.start = function() {
console.log('Car is starting...');
};
// 返回创建的对象
return car;
}
// 使用工厂函数创建对象
var sedan = CarFactory('sedan', 'blue');
var suv = CarFactory('suv', 'red');
console.log(sedan); // 输出: { doors: 4, type: 'Sedan', color: 'blue', start: [Function: start] }
console.log(suv); // 输出: { doors: 5, type: 'SUV', color: 'red', start: [Function: start] }

在这个例子中,CarFactory函数就是一个工厂,它接受typecolor作为参数,并返回一个具有相应属性和方法的对象。你可以根据需要添加更多的车型和属性。

工厂模式的一个优点是,它使得对象的创建过程与具体的实现解耦。当你需要创建新的对象类型时,你只需要修改工厂函数即可,而不需要修改使用工厂函数创建对象的代码。这有助于保持代码的清晰和可维护性。

相关推荐

  1. 设计模式工厂模式

    2024-06-11 19:12:03       39 阅读
  2. 设计模式--工厂模式

    2024-06-11 19:12:03       24 阅读
  3. 设计模式 工厂模式

    2024-06-11 19:12:03       21 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-06-11 19:12:03       8 阅读
  2. 【Python教程】压缩PDF文件大小

    2024-06-11 19:12:03       9 阅读
  3. 通过文章id递归查询所有评论(xml)

    2024-06-11 19:12:03       10 阅读

热门阅读

  1. C++经典150题

    2024-06-11 19:12:03       7 阅读
  2. k8s 小技巧: 查看 Pod 上运行的容器

    2024-06-11 19:12:03       4 阅读
  3. Elasticsearch 认证模拟题 - 9

    2024-06-11 19:12:03       3 阅读
  4. 深度解读 ChatGPT基本原理

    2024-06-11 19:12:03       4 阅读
  5. 接口interface

    2024-06-11 19:12:03       5 阅读
  6. 使用redis构建简单的社交网站

    2024-06-11 19:12:03       6 阅读
  7. c语言之 **指针

    2024-06-11 19:12:03       6 阅读
  8. 008.googleNet-FashionMNIST-正确率90.510

    2024-06-11 19:12:03       8 阅读
  9. Android13 Settings 左上角箭头图标点击无效

    2024-06-11 19:12:03       5 阅读
  10. 【摘葡萄game】

    2024-06-11 19:12:03       6 阅读
  11. C++ Primer Chapter 8 The IO Library

    2024-06-11 19:12:03       5 阅读
  12. 深度学习的可微渲染

    2024-06-11 19:12:03       6 阅读