单体模式

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <script type="text/javascript">
单体模式:全局只维护一份实体,不管调用多少次创建代码,永远只创建一次实体(只能实例化一次对象,标签等)

单体模式的优点是:

1、可以用来划分命名空间,减少全局变量的数量。
2、使用单体模式可以使代码组织的更为一致,使代码容易阅读和维护。
3、可以被实例化,且实例化一次。

单体模式实例化对象
            var Singleton = function(name){
指向创建出来的对象
                this.name = name;
设置一个变量用来判断当前对象是否已经执行实例化过程
            
            }
            Singleton.prototype.getName =function(){
                return  this.name;
            }
实例化对象
            function  getInstance(name){
要实现一个单体模式的话,我们无非就是使用一个变量来标识该类是否被实例化,如果未被实例化的话,那么我们可以实例化一次,否则的话,直接返回已经被实例化的对象。
                //this指向window
                if(!this.instance){
                    this.instance = new Singleton(name);
                }
                return this.instance;
            }
        
调用实例化函数创建对象由于单体模式只实例化一次,因此第一次调用,返回的是kitty实例对象,当我们继续调用的时候,cat的实例就是kitty的实例,因此下面都是打印的是kitty;  所以用的同一块空间。
            var  hellokity = getInstance('kitty');
            var  cat = getInstance('cat');
            console.log(hellokity.getName());
            console.log(cat.getName());
            
        </script>
    </head>
    <body>
    </body>
</html>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一:工厂模式 工厂模式是为了解决多个类似对象声明的问题;也就是为了解决实列化对象产生重复的问题。优点:能解决多个相...
    尘中老阅读 3,101评论 1 1
  • 工厂模式类似于现实生活中的工厂可以产生大量相似的商品,去做同样的事情,实现同样的效果;这时候需要使用工厂模式。简单...
    舟渔行舟阅读 12,385评论 2 17
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,758评论 19 139
  • 单体模式 ---- 只有一个实例,共享变量,节省内存空间,使代码的调式和维护变得更轻松 1.脚本加载时就创建 2....
    Gary嘉骏阅读 1,326评论 0 0
  • 单体模式: 单体模式用于创建命名空间,将一批关联的属性和方法组织成一个逻辑单元,减少全局变量。逻辑单元中的代码通过...
    你期待的花开阅读 3,649评论 1 3