js之简单工厂模式
来源:互联网 发布:阿里云最新六位推荐码 编辑:程序博客网 时间:2024/06/14 16:51
定义:工厂模式就是把成员变量的创建工作交给一个外部的对象去做(可以是类的实例也可以是一个命名空间);
例子:比如你去一家商店去买球;
var BallShop = function(){} //定义一个商店类BallShop.prototype ={ getBall:function(type){ var ball; switch(type){ case A : ball = new A();//A球 break; case B : ball = new B();//B球 break; . . . default : ball = new N();//N球 break; } return ball; } }
如果你要获得一个N球,那么你需要
var BallShop = new BallShop ();//先有一个商店;
var Ball = Ballshop.getBall(‘N’);//得到N类型的球;
但是如果我想要一个大的红色的N类型球;那么以上方法的拓展性就不好了;
这个时候我们就需要把getBall方法单独用一个类或者命名空间去代替;
方法一:命名空间
var BallFactory ={ createBall:function(type){ var ball; switch(type){ case A : ball = new A();//A球 break; case B : ball = new B();//B球 break; . . . default : ball = new N();//N球 break; } return ball; }};
所以现在获取一个球;
var BallShop = function(){} //定义一个商店类BallShop.prototype ={ getBall:function(type){ var ball = BallFactory.createBall(type); return ball; }}
BallFactory是脱离BallShop的单体对象;降低了耦合度,如需要添加新的类型和属性,只需要修改BallFactory对象即可;
方法二:类;
var BallFactory = function(){};BallFactory.prototype={ createBall:function(type){ var ball; switch(type){ case A : ball = new A();//A球 break; case B : ball = new B();//B球 break; . . . default : ball = new N();//N球 break; } return ball; }};
获取一个球;
var BallShop = function(){} //定义一个商店类BallShop.prototype ={ getBall:function(type){ var ball = BallFactory.createBall(type); return ball; }}
0 0
- js之简单工厂模式
- JS简单工厂模式
- js简单工厂模式
- js 简单工厂模式
- js的简单工厂模式
- 工厂模式之简单工厂模式
- 工厂模式之--简单工厂模式
- 工厂模式之简单工厂模式
- 设计模式 之简单工厂+ 工厂模式
- Java工厂模式之简单工厂模式
- 【JS设计模式】简单工厂模式
- java 工厂模式之简单工厂(01)
- 【Java】Java工厂模式之简单工厂
- 工厂三兄弟之简单工厂模式
- 工厂三兄弟之简单工厂模式
- 工厂三兄弟之简单工厂模式
- 文工厂模式之简单工厂
- C++设计模式之简单工厂、工厂模式、抽象工厂
- 复选框的全选及其反选的实现
- Android IPC数据在内核空间中的发送过程分析
- C语言运算符优先级
- H5表单与PHP交互学习笔记
- 容器式退出应用
- js之简单工厂模式
- Xcode8 ---关闭log输出
- Android开发ListView中包含EditText控件遇到的问题
- 欢迎使用CSDN-markdown编辑器
- iOS10后,部分自动布局(AutoLayout)布局出错的解决方法
- iOS 富文本、图文混排
- 浅谈iOS开发中的浅复制和深复制
- 迭代器模式——对象行为型模式
- hiho1385 -- 模拟题(2016北京网络赛)