javascript设计模式读书笔记一工厂模式

var page = page || {};
page.dom = page.dom || {};
//子函数1:处理文本
page.dom.Text = function() {
    this.insert = function(where) {
        var txt = document.createTextNode(this.url);
        where.appendChild(txt);
    };
};

//子函数2:处理链接
page.dom.Link = function() {
    this.insert = function(where) {
        var link = document.createElement('a');
        link.href = this.url;
        link.appendChild(document.createTextNode(this.url));
        where.appendChild(link);
    };
};

//子函数3:处理图片
page.dom.Image = function() {
    this.insert = function(where) {
        var im = document.createElement('img');
        im.src = this.url;
        where.appendChild(im);
    };
};
page.dom.factory = function(type) {
    return new page.dom[type];
}
var o = page.dom.factory('Link');
o.url = 'http://www.cnblogs.com';
o.insert(document.body);

以下几种情景下工厂模式特别有用:
对象的构建十分复杂
需要依赖具体环境创建不同实例
处理大量具有相同属性的小对象
参考:深入理解JavaScript系列(28):设计模式之工厂模式

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,268评论 19 139
  • 接触前端两三个月的时候,那时候只是听说设计模式很重要,然后我就去读了一本设计模式的书,读了一部分,也不知道这些设计...
    艰苦奋斗的侯小憨阅读 3,124评论 2 39
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,589评论 25 709
  • 文/乙辛 虽然持续一年的离婚大战早已让她疲惫不堪,恩爱不再,但拿到离婚证书的那一刻,小颖还是心痛如绞。 付出五年心...
    乙辛阅读 784评论 7 4
  • 我一直在期待着一场雨,一场瓢泼大雨或是清风细雨都是我诉求的。久病之人心情怎么可能会好,身体疼痛过后是内心的煎熬彷徨...
    青樱低诉阅读 470评论 2 1