javascript设计模式理论与编程的简易工厂模型

javascript设计模式理论与编程的简易工厂模型
阅读目录

基本介绍

说明

概要描述

简单工厂模式是决定创建哪个类的方法,这些实例通常具有相同的接口。这种模式主要用于实例化的类型,这不是在编译时,而是在执行期间确定。流行的点说,作为公司茶饮料机,咖啡或牛奶取决于哪个按钮按下。

在创建Ajax对象时,简单的工厂模式也是非常有用的。

通常,我们创建对象最常用的方法是使用new关键字调用构造函数,这会导致对象之间的依赖关系。文中详细介绍了简单工厂模型的原理,并举例说明了简单工厂模型的具体应用。

基本介绍

简单工厂模型是工厂模型中最基本的模型,通过定义工厂类,根据参数实例化特定的产品类。

说明

让我们举一个例子:假设我们发展旅游业的网站销售机票,在酒店和其他产品。用户准备买一张票。我们可以定义以下类如下:
无功productenums = { {
飞行:飞行
酒店:酒店
};
函数飞行(){
Console.log (This is Flight);
}
功能酒店(){
console.log(这是酒店);
}
函数用户(){
this.shopcart = { };
}
User.prototype = {{
构造函数:用户,
秩序:功能(产品类型){
var产品= null;
开关(产品类型){
案例productenums.flight:
产品=新航班();
案例productenums.hotel:
产品=新酒店();
违约:
}
This.shopCart.push(产品);
}
}
用户=新用户();
User.order(productenums。飞行);
这段代码定义了三个类:用户类用户、航空类航班、品位酒店酒店和用户包含预订方法。当用户被预订时,可以直接导入产品类型。这个代码乍一看不是问题,但需求和业务随时都在变化。如果业务扩展和签证业务增加,我们将修改用户类,以确保它支持VISA。当然,我们可以这样做,但是直接修改用户类有多糟糕。有没有更好的方法

首先要说的是用户类。该类表示用户类,而用户类本质上与特定业务无关。也就是说,企业可以在任何时间增加,但对商业用户的代码创建的产品订单。新的商务签证和现有的机票和酒店的本质没有什么区别,如果每增加一个业务是修改用户类,代码的稳定性和可维护性大大不好,更好的办法是为了创造不同的经营管理有一个特殊的类。这是一个简单的工厂。
我们将代码修改如下:
VaR制品=(函数(){()
无功productfactories = { {
航班:函数(){
返回新航班();
},
酒店:函数(){
新旅馆();
}
};
返回{
CreateProduct:功能(产品类型){
productfactories { }()返回的产品类型;
}
}
});
user.prototype = { {
构造函数:用户,
秩序:功能(产品类型){
This.shopCart.push(productfactory.createproduct(产品类型));
}
}
这个代码的主要修改有两点。

(1)根据不同的产品类型,添加一个产品工厂返回不同的对象。
(2)修改用户类的顺序方法是在调用工厂类中创建产品的方法。
这样做的好处是:
(1)使用户的订货方式更加集中,只做预定产品的功能,并将产品订单提取和生成到专业的工厂类,代码更加简洁明了。
(2)一个专门生产产品的工厂,很容易添加新产品,不再需要修改用户类。

概要描述
简单工厂模式的主要特点是分离对象的创建和使用,主要由3部分组成:
1。对象使用一个类,一个工厂创建的用户,独立于对象的类型和创建过程。
2。工厂类、工厂类根据要导入的参数创建不同的对象,并将对象返回给类,包括不同对象的创建过程。如果有不同的对象,就必须修改类。
三.对象类,由不同业务产生的不同类,是工厂生产的产品。

简单工厂模式的优势
1。工厂类专注于创建所有对象,以方便对对象创建的统一管理。
2用户。对象只是使用产品来实现单一的责任。
3、很容易扩展。如果添加一个新业务,只需要在工厂类中增加相关的业务对象类和生产业务对象,不需要修改其他地方。

适用场景
1。需要根据不同的参数生成不同的实例,并且这些实例有一些常见的场景。
2。用户只需要使用产品,不需要知道产品的细节。

注意:除非场景是适用的,否则工厂模式不能被滥用,代码的复杂性将被引起。
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部