当前位置: 首页 > news >正文

设计模式

一、单例模式(singleton)
 
1.概念:单个实例,只有一个对象,多次创建,返回同一个对象;
     
 1    面向对象的实例对象
 2            function Person(name,age){
 3              if(!Person.instance){
 4                   Person.instance={
 5                       name : "李四",
 6                       age : "12",
 7                       showName : function(){
 8                            return this.name;
 9                       },
10                       showAge : function(){
11                            return this.age;
12                       }
13                   }
14              }
15              return Person.instance;
16          }
17          var ps2 = new Person();
18          var ps3 = new Person();
19  
20          alert(ps2==ps3)    //true
2.创建方式:
      
 1   01字面量创建方式:var ps1 = {
 2                              "name" :"张三";
 3                              "age" :15;
 4                              showName:function(){
 5                                   return this.name;
 6                              }
 7                              showAge:function(){
 8                                   return this.age;
 9                              }
10                         }
11   02:function Person(name,age){
12                  this.name = name;
13                  this.age = age;
14              }
15             Person.prototype.showName =function(){
16                  return this.name;
17            }
18            Person.prototype.showAge =function(){
19                  return this.age;
20            }
21            var ps2 = new Person("张三",46);
22            var ps3 = new Person("张三",56);
23            alert(ps2==ps3)   //false 
面试题
       
1 alert([]==[]);             //false
2 alert([] == ![])              //true
3 alert(typeof []);             //object
二、代理模式(微商)
 案例:马蓉和宝宝的故事
    
 1    //花店
 2      function Flower(type){
 3          this.type=type;
 4      }
 5      //宝宝
 6      var Baobao={
 7          sendFlower:function(target){        //给目标者送花
 8               var flower = new Flower("狗尾巴花");    //买花
 9               target.receiveFlower(flower);           //目标者收到花
10          }
11      }
12      //代理送花
13      var Songzhe={
14          receiveFlower:function(flower){
15               Marong.receiveFlower(flower);
16          }
17      }
18      var Marong={
19          receiveFlower:function(flower){     //收花的人
20               alert("收到一束:"+flower.type+",祝你幸福");
21          }
22      }
23  
24      Baobao.sendFlower(Songzhe);
三、适配器模式
 
两个软件通过接口  可以同时运转(手机和充电器)
 
 
四、工厂模式
五、组合模式
六、策略模式
   解决问题的不同方法
七、观察者模式
 
  又叫  发布-订阅式 ------> 群发信息
 
 
 

转载于:https://www.cnblogs.com/Makeprogresstogether/p/8011436.html

相关文章:

  • IDA.快捷键_ZC收集
  • 直接从google中引入jquery.js
  • Sql注入攻击
  • linux下vsftpd客户端时间不一致问题
  • 3.2 使用STC89C52控制MC20发送短信
  • POJ 2823 Sliding Window 单调队列
  • 别人做的扫地机器人,有机会我也想搞一台!
  • backgroundworker与Thread区别
  • 数据类型--字符串
  • 如果在BackgroundWorker运行过程中关闭窗体…
  • [TestLink]testlink安装
  • 【Android】使用AsyncTask来处理一些简单的需要后台处理的动作
  • 如何让你的网页加载时间降低到 1s 内
  • 洛谷 [P1118] IOI1994 数字三角形
  • C#中 一次执行多条带GO的sql语句
  • 《Java编程思想》读书笔记-对象导论
  • Android组件 - 收藏集 - 掘金
  • extjs4学习之配置
  • MySQL-事务管理(基础)
  • python学习笔记 - ThreadLocal
  • Stream流与Lambda表达式(三) 静态工厂类Collectors
  • vue从创建到完整的饿了么(18)购物车详细信息的展示与删除
  • 百度贴吧爬虫node+vue baidu_tieba_crawler
  • 道格拉斯-普克 抽稀算法 附javascript实现
  • 官方解决所有 npm 全局安装权限问题
  • 后端_ThinkPHP5
  • 警报:线上事故之CountDownLatch的威力
  • 让你成为前端,后端或全栈开发程序员的进阶指南,一门学到老的技术
  • 异步
  • 正则学习笔记
  • Spring Batch JSON 支持
  • 回归生活:清理微信公众号
  • 容器镜像
  • 曾刷新两项世界纪录,腾讯优图人脸检测算法 DSFD 正式开源 ...
  • ​flutter 代码混淆
  • #中国IT界的第一本漂流日记 传递IT正能量# 【分享得“IT漂友”勋章】
  • (02)Hive SQL编译成MapReduce任务的过程
  • (附源码)springboot电竞专题网站 毕业设计 641314
  • (附源码)计算机毕业设计SSM智能化管理的仓库管理
  • (转)关于多人操作数据的处理策略
  • (转)甲方乙方——赵民谈找工作
  • .NET 4.0中使用内存映射文件实现进程通讯
  • .NET开源全面方便的第三方登录组件集合 - MrHuo.OAuth
  • .NET下的多线程编程—1-线程机制概述
  • .Net转前端开发-启航篇,如何定制博客园主题
  • @Autowired自动装配
  • @property括号内属性讲解
  • @TableLogic注解说明,以及对增删改查的影响
  • [Angular] 笔记 21:@ViewChild
  • [AutoSar]BSW_Com07 CAN报文接收流程的函数调用
  • [BZOJ 1032][JSOI2007]祖码Zuma(区间Dp)
  • [CISCN2019 华东南赛区]Web11
  • [DEBUG] spring boot-如何处理链接中的空格等特殊字符
  • [JavaScript]_[初级]_[不使用JQuery原生Ajax提交表单文件并监听进度]
  • [LeetCode] 93. Restore IP Addresses 复原IP地址