一. 现在有这样一个需求 : 你要 DIY 一台电脑.
根据需求我们分析:DIY 一台电脑,至少需要 CPU ,内存,主板,机箱,电源,硬盘等,这些东西你都没有,怎么办呢? 我们去网上或者数码城一样一样的 买 回来,买齐了,我们就可以自己组装了(假设你会组装的情况下)
通过代码来实现 :
const DIYcomputer = (function () {
const HardWare = {
CPU:function() {
console.log( 'cpu' );
},
memory:function() {
console.log( 'memory' );
},
board:function() {
console.log( 'board' );
},
monitor:function() {
console.log( 'monitor' );
}
};
return {
buy( type ) {
return new HardWare[ type ]();
}
};
})();
DIYcomputer.buy('CPU') // 输出 cpu
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
- 二. 那哪些情况下适合使用工厂模式呢 ?
- 1 当对象或组件设置设计高复杂性时
- 2 当需要根骨所在的不同环境轻松生成对象的不同实例时
- 3 当处理很多共享相同属性的小型对象或组件时
- 4 在编写只需要满足一个 API 契约的其他对象的实例对象时
- 三 . 哪些情况不适用工厂模式 如果应用错误,这种模式会为应用程序带来大量不必要的复杂性. 除非为创建对象提供一个接口是我们正在编写的库或者框架的设计目标,否则,我们还是坚持使用显示的构造函数,以避免不必要的开销.