前端设计模式之简单工厂模式

729 阅读1分钟

简单工厂模式就是对 同一类对象创建过程的抽象,在形式上它仅仅只是通过 if 等判断语句,根据不同条件去生成不同对象,且只能创建已经设计的好的数据,如果要添加新的数据,必须重新修改代码添加。

function getPhne(brand) {
	if (brand === 'hw') {
		return {
			mode: 'mate 40',
			brand: '华为',
			price: 4500,
			call: function() {},
			takePhotos: function () {}
		}
	} else if (brand === 'xm') {
		return {
			mode: '米10',
			brand: '小米',
			price: 4000,
			call: function() {},
			takePhotos: function () {}
		}
	} else {
		return '暂无该机器!'
	}
}

const hw = getPhne('hw');
const xm = getPhne('xm');

总结:

优点:

  1. 将创建实例的工作与使用实例的工作分开,使用者不必关心类对象如何创建,实现了解耦;
  2. 把初始化实例时的工作放到工厂里进行,使代码更容易维护。

缺点:

  1. 违背 开放 - 关闭原则 ,一旦添加新产品就不得不修改工厂类的逻辑,这样就会造成工厂逻辑过于复杂;
  2. 工厂集中了所有的创建逻辑,如果当产生的种类过多时,就会过于冗余。