zoukankan      html  css  js  c++  java
  • 设计模式

    设计模式
    什么是设计模式?(单例、工厂、观察者、代理、策略等,后台语言设计模式:MV*--->MVC   MVVM 不属于23种设计模式 )
    MV
    MVC  
    设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。   设计模式就是一种 编程规范  架构层面的
     
    单例模式
    什么是单例 ? 永远保持对象的一个实例(多次创建对象这些对象只指向一个对象)
     
    原理 : 在构造函数中,先将第一次new出来的对象  this  存入到一个变量中 并返回这个变量
           再次创建对象时(new) , 判断这个变量中是否含有值,如果有 就返回该对象
                    function Fn(){
                        if( !Fn.ins ){
                            Fn.ins = {
                                属性:属性值
                            }
                        }
                        return Fn.ins
                    }
     
    单例模式好处 : 可以实现私有变量的全局累加功能
                   减少对象的创建,节省资源,适当的时候通过单例共享数据
     
    工厂模式
    让对象的调用者和对象创建过程分离,当对象调用者需要对象时,直接向工厂请求即可。从而避免了对象的调用者与对象的实现类似编码方式耦合,以提高系统的可维护性、可扩展性。
     
    观察者模式(异步现象)
    观察者模式又叫发布订阅模式(Publish/Subscribe),它定义了一种一对多的关系,让多个观察者对象同时监听某一个主题对象,这个主题对象的状态发生变化时就会通知所有的观察者对象,使得它们能够自动更新自己。    
     
    在一个构造函数中 通知另外一个构造函数 要实现的方法  
    烧水 --
     
    小孩哭了  ----  饿了  开始喂奶了
    function Child(dad,mum){
        this.dad = dad;
        this.mum = mum;
        this.cry = function(){
                //观察者模式   
            //小孩哭了  通知父亲该给孩子喂奶了
             this.dad.weinai();
        }
     
        setTimeout(function(){
            this.cry();
        }.bind(this),Math.random()*5000+300)
    }
     
    function Dad(){
        this.weinai = function(){
            alert("给孩子冲奶粉~~~");
        }
    }
     
     
    代理商模式
    作用
        在于执行目标函数之前,可以先做一些其他的相关操作
  • 相关阅读:
    使用VideoView开发视频总结
    后台接口向数据库录入汉字时乱码以及自动过滤文字经验总结
    8 Crash Reporting Tools For iOS And Android Apps
    Best Mobile Crash Reporting Software
    How do I obtain crash-data from my Android application?
    ACRA (Automated Crash Reporting for Android)
    Debugging Neural Networks with PyTorch and W&B
    OpenPose MobileNet V1
    Real-time-human-pose-estimation-by-pytorch
    openpose-pytorch
  • 原文地址:https://www.cnblogs.com/tis100204/p/10302402.html
Copyright © 2011-2022 走看看