JavaScript设计模式---0003工厂模式----抽象工
2020-04-29 本文已影响0人
八月飞花
抽象工厂模式
在Java中不能完全实现抽象工厂模式,因为没办法通过父类调用子类,
但是可以变通,抽象工厂就是只定义实现的基本方法,不定义具体的实现
具体实现由继承的子类进行实现
假设需要实现一个创建ajax的工厂
实现抽象工厂
1.实现基本的方法,类似于Java的 接口
function AJAXHTTP=function(){
};
AJAXHTTP.prototype.createAjax=function(){
throw Error("不能直接调用此接口函数,这个方法不可以被实例化");
};
实现自己的工厂
function XHRHTTP=function(){
AJAXHTTP.call(this);//继承抽象工厂
};
//将原型挂载到AJAX的实例对象上
XHRAJAX.prototype=new AJAXHTTP();
XHRAJAX.prototype.constructor=XHRHTTP;//改变构造函数
//实现继承过来的函数
XHRAJAX.prototype.createAjax=function(){
var XHRAjax=null;
if(window.XMLHttpRequest){
XHRAjax=new XMLHttpRequest;
}
return XHRAjax;
}