1. 简单工厂模式
说明:就是创建一个工厂类,里面实现了所对同一个接口的实现类的创建。
但是好像JavaScript 好像没有 接口 这号东西,所以我们去掉接口这个层; 当然,我们这里的 实现类 下的成员变量,方法应该都是一样的;
例如:这时举短信发送跟邮件发送的例子;
1>. 邮件发送[实现]类
MailSender.prototype.send = function() { //send body }
2>. 短信发送[实现]类
SmsSender.prototype.send = function() { //send body }
3>. 创建一个工厂类:
SendFactory.prototype.produce = function(type) { var me = this; if (type == 'mail') { me.sender = new MailSender(); } else if (type == 'sms') { me.sender = new SmsSender(); } return me.sender; }
4>. 使用这个工厂类:
2. 多个工厂方法模式
说明:多个工厂模式方法,是对普通工厂方法的改进,因为返回实现是依据传进去的字符返回,当字符输入错误,可能就无法处理,或是处理成错误的方式; 而多个工厂模式方法,就可以避免这样的错误;
我们对上面的工厂类进行改进:
SendFactory.prototype.produceMail = function() { var me = this; me.sender = new MailSender(); return me.sender; }
SendFactory.prototype.produceSms = function() { var me = this; me.sender = new SmsSender(); return me.sender; }
使用方法: