面试题答案
一键面试适合使用工厂模式的场景
- 创建相似对象:例如创建多个具有相似属性和方法的用户对象。在一个用户管理系统中,需要创建不同用户实例,这些用户都有基本的姓名、年龄、邮箱等属性和一些通用行为。
- 对象创建逻辑复杂:当创建对象的过程涉及多个步骤或者依赖外部配置等复杂逻辑时。比如创建一个数据库连接对象,连接配置可能从不同地方获取,创建过程要进行参数校验、初始化连接池等操作。
使用工厂模式实现示例
// 工厂函数
function userFactory(name, age, email) {
return {
name: name,
age: age,
email: email,
sayHello: function() {
console.log(`Hello, I'm ${this.name}`);
}
};
}
// 使用工厂函数创建对象
const user1 = userFactory('Alice', 25, 'alice@example.com');
const user2 = userFactory('Bob', 30, 'bob@example.com');
user1.sayHello();
user2.sayHello();
在上述代码中,userFactory
是一个工厂函数,它接收参数并返回一个包含特定属性和方法的对象。通过调用这个工厂函数,可以轻松创建多个相似的用户对象,隐藏了对象创建的具体细节,符合工厂模式的特点。