国产精品爱久久久久久久小说,女人扒开腿让男人桶到爽 ,亚洲欧美国产双大乳头,国产成人精品综合久久久久,国产精品制服丝袜无码,免费无码精品黄av电影,黑色丝袜无码中中文字幕,乱熟女高潮一区二区在线

            JS設計模式之單例模式、組合模式、觀察者模式、策略模式

            2020-3-18    前端達人

            好,下面我將結合一些實例,說一下我對組合模式以及觀察者模式的了解:



            1、組合模式:



            組合模式在對象間形成樹形結構;

            組合模式中基本對象和組合對象被一致對待;

            無須關心對象有多少層, 調用時只需在根部進行調用;

            將多個對象的功能,組裝起來,實現批量執行;

            想象我們現在手上有個萬能遙控器, 當我們回家, 按一下開關, 下列事情將被執行:



            到家了,開門

            開電腦

            開音樂




            // 先準備一些需要批量執行的功能
            class GoHome{
                init(){
                    console.log("到家了,開門");
                }
            }
            class OpenComputer{
                init(){
                    console.log("開電腦");
                }
            }
            class OpenMusic{
                init(){
                    console.log("開音樂");
                }
            }
            
            // 組合器,用來組合功能
            class Comb{
                constructor(){
                    // 準備容器,用來防止將來組合起來的功能
                    this.skills = [];
                }
                // 用來組合的功能,接收要組合的對象
                add(task){
                    // 向容器中填入,將來準備批量使用的對象
                    this.skills.push(task);
                }
                // 用來批量執行的功能
                action(){
                    // 拿到容器中所有的對象,才能批量執行
                    this.skills.forEach( val => {
                        val.init();
                    } );
                }
            }
            
            // 創建一個組合器
            var c = new Comb();
            
            // 提前將,將來要批量操作的對象,組合起來
            c.add( new GoHome() );
            c.add( new OpenComputer() );
            c.add( new OpenMusic() );
            
            // 等待何時的時機,執行組合器的啟動功能
            c.action();
                // 在內部,會自動執行所有已經組合起來的對象的功能
            



            由此,我們可以總結一下組合模式的特點


            1.批量執行
            2.啟動一個方法,會遍歷多個方法,同時執行,有點類似于遞歸的感覺
            3.組合模式略微耗性能,但是執行方便
             目前只是一個基礎組合。
             高級組合:
            1.組合成樹狀結構,每個對象下,還會有自己的子對象
            2.如果執行了父對象的某個方法,所有的子對象會跟隨執行
            3.組合模式一般建議使用在動態的html結構上,因為組合模式的結構和html的結構,出奇的一致
            4.基本對象和組合對象被一致對待, 所以要保證基本對象(葉對象)和組合對象具有一致方法


            2、觀察者模式:

            觀察者模式也叫也叫Observer模式、訂閱/發布模式,也是由GoF提出的23種軟件設計模式的一種。
            觀察者模式是行為模式之一,它的作用是當一個對象的狀態發生變化時,能夠自動通知其他關聯對象,自動刷新對象狀態,或者說執行對應對象的方法(主題數據改變,通知其他相關個體,做出相應的數據更新)。
            這種設計模式可以大大降低程序模塊之間的耦合度,便于更加靈活的擴展和維護。
            以觀察的角度,發現對應的狀況,處理問題。
            觀察者模式包含兩種角色:
            ①觀察者(訂閱者):會隨時更新自身的信息或狀態(訂閱者可以隨時加入或離開);
            ②被觀察者(發布者):接收到發布者發布的信息,從而做出對應的改變或執行。
            很方便的實現簡單的廣播通信,實現一對多的對應關系。
            核心思想:觀察者只要訂閱了被觀察者的事件,那么當被觀察者的狀態改變時,被觀察者會主動去通知觀察者,而無需關心觀察者得到事件后要去做什么,實際程序中可能是執行訂閱者的回調函數。
            Javascript中實現一個例子:


            日歷

            鏈接

            個人資料

            藍藍設計的小編 http://www.dzxscac.cn

            存檔

            主站蜘蛛池模板: 免费色播| 国产igao视频网在线观看| www,色| 嗯灬啊灬把腿张开灬动态图| 韩国精品久久久久久无码| 国产porn| 亚洲av无码成人精品国产| 国产在线精品国自产拍影院同性| 亚洲电影天堂在线国语对白| 国产精品自在线| 人妻夜夜爽天天爽三区麻豆av| 中文字幕专区高清在线观看| 欧美中文字幕在线观看| 精品无码av一区二区三区不卡| 成人免费看片又大又黄| 婷婷色香五月综合缴缴情香蕉| 欧美xxxx黑人xyx性爽| 国产99在线播放| 国产精品交换| 国产精品最新免费视频| 日韩欧美高清在线| 久久精品国产亚洲av麻豆软件| 强奷漂亮少妇高潮伦理| 无码视频一区二区三区| 青青草好吊色| 久久av无码精品人妻出轨| 国产传媒麻豆剧精品av国产| 60分钟| 不卡成人| 无码人妻精品一区二区蜜桃百度 | 人妻中文字系列无码专区| 玖草在线视频| 国产人妻人伦精品婷婷| 久久综合给合久久国产免费| 久久毛片| 综合视频| 亚洲欧美日本韩国| a在线亚洲高清片成人网| 91精品久久久久久久久久| 激情小说专区| 欧洲女人牲交性开放视频|