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;
}

上一篇 下一篇

猜你喜欢

热点阅读