设计模式学习笔记之 - 简单工厂模式
作者:潇洒人生 来源:潇洒人生blog 发布时间:2009-03-11 13:38:00
标签:设计,设计模式,笔记,JavaScript
俺比较笨,对太专业的书一直不感冒,看了就想睡觉。
最近李明同学传了本“大话设计模式”电子版。
偶然翻了翻,感觉还满通俗的,正适合我这样的懒人学习。
设计模式早听过也了解过点,可一直没怎么系统的学过,现在才发现这东东还满有趣的。但愿这
次我能坚持看完。今天先把第一章“简单工厂模式”的练习贴上来备忘。书上是Java的例子,俺
照葫芦画了个JS版。(不知像不像,高手请飘过..自行 * 也成)
<script language="JavaScript">
<!--
// class operation
function operation(){
this.numA = 0;
this.numB = 0;
this.getResult = function(){
return null;
}
}
// ext method
function add(){
var o = new operation();
o.getResult = function(){
return o.numA + o.numB;
}
return o;
}
function sub(){
var o = new operation();
o.getResult = function(){
return o.numA - o.numB;
}
return o;
}
// class operation factory
function calc(type){
var op = null;
switch(type){
case "+" : op = new add(); break;
case "-" : op = new sub(); break;
}
return op;
}
// show
var sum = new calc('+');
sum.numA = 10;
sum.numB = 79;
alert(sum.getResult());
var sum = new calc('-');
sum.numA = 10;
sum.numB = 79;
alert(sum.getResult());
//-->
</script>
![](https://www.aspxhome.com/images/zang.png)
![](https://www.aspxhome.com/images/jiucuo.png)
猜你喜欢
- 下面这些命令可以在命令行下用isql执行,isql -E -Q "命令",isql.exe
- 1.找到配置文件-打开“开始菜单--Anaconda3文件夹--Anaconda Prompt”-输入命令: jupyter noteboo
- 字符串的相似性比较应用场合很多,像拼写纠错、文本去重、上下文相似性等。评价字符串相似度最常见的办法就是:把一个字符串通过插入、删除或替换这样
- 本文实例讲述了JS实现仿Windows经典风格的选项卡Tab切换代码。分享给大家供大家参考,具体如下:这款仿Windows风格的选项卡,带有
- 用ASP实现搜索引擎的功能是一件很方便的事,可是,如何实现类似3721的智能搜索呢?比如,当在搜索条件框内输入“中国人民”时,自动从中提取“
- 大家是否还记得1983年任天堂的著名游戏《超级玛丽》里那个留着胡子的意大利水管工人,还有日本konami公司1987年发行的射击游戏《魂斗罗
- 代码如下: <% '屏蔽主流的下载工具 Dimxurl,xtool '获取浏览器AGENT xurl=lcase(Re
- 今天遇到了这样一个问题,使用matplotlib绘制热图数组中横纵坐标自然是图片的像素排列顺序,但是这样带来的问题就是画出来的x,y轴中坐标
- 引言在Scrapy中,在很多种情况下,需要一层层地进行爬取网页数据,就是基于url爬取网页,然后在从网页中提取url,继续爬取,循环往复。本
- ff默认不让改 statusopera9 测试通过ie6 测试通过这东西是给统计部门用的,分析用户习惯以改良网站布局
- 实际上face_recognition这个项目尤其是dlib更适用于Linux系统。经过我的测试,在性能方面,编译同样规格的项目,这个工具在
- 概述备份是容灾的基础,是指为防止系统出现操作失误或系统故障导致数据丢失,而将全部或部分数据集合从应用主机的硬盘或阵列复制到其它的
- Altova 公司的 XMLSPY 是个不可多得的好东西,它几乎可以开发所有的 XML 产品。最近用它来做 Schema
- 假设你想设计一个模块集(也就是一个“包”)来统一处理声音文件和声音数据。通常由它们的扩展有不同的声音格式,例如:WAV,AIFF,AU),所
- 【问题原因】 这个应该是 jquery.datatable 控件本身的一个缺陷。 该控件中的checkbox小插件的id是写死的,所以当有多
- 通过go语言实现http请求http.Postimport (?? ?"net/http"?? ?"net/u
- 前言在日常中有时需将 html 文件转换为 pdf、word 文件。网上免费的大多数不支持多个文件转换的情况,而且在转换几个后就开始收费了。
- mysql 8.0.20 winx64.zip压缩版安装教程记录如下,分享给大家1.下载MySQL官网:链接直接点击链接也可以下载:mysq
- 我们通过python-nmap实现一个高效的端口扫描工具,与定时作业crontab及邮件告警结合,可以很好的帮助我们及时发现异常开放的高危端
- 新版本的selenium已经明确警告将不支持PhantomJS,建议使用headless的Chrome或FireFox。两者使用方式非常类似