工厂模式
工厂模式
1.设计模式要掌握是很好,每次记住了就忘记,也不是一件好事。
先看代码吧。
class Food{
print(){
console.info("food");
}
}
class Apple extends Food{
print(){
console.info("Apple");
}
}
class Banna extends Food{
print(){
console.info("Banna");
}
}
class FoodFactory{
static getFood(type){
if( !type){
return null;
}else if( type === 'apple'){
return new Apple();
}else if( type === 'banna'){
return new Banna();
}
}
}
let f1 = FoodFactory.getFood('apple');
let b1 = f1 instanceof Apple;
let b2 = f1 instanceof Banna;
console.info( b1 );
console.info( b2 );
有点感觉工厂就没有存在的必要啊,所以做事前,先想想好处。
好处:
1.将创建对象的代码集中在一个对象或方法中,可以避免代码的重复。方便维护。客户在实例化对象时,只会依赖于接口,而不是具体类。符合 针对接口编程,而不针对实现编程,达到封装创建对象(new)的目的。
2. 利用字符串传入参数化的类型,万一拼写错了,怎么办? 可以用宏来代替。