亚洲精品亚洲人成在线观看麻豆,在线欧美视频一区,亚洲国产精品一区二区动图,色综合久久丁香婷婷

              當前位置:首頁 > IT技術(shù) > 其他 > 正文

              第六章 面向?qū)ο螅ㄏ拢?1.2 - 單例模式
              2022-05-29 22:44:54

              1.設(shè)計模式的說明:
              1.1理解:

              設(shè)計模式:是在大量的實踐中總結(jié)和理論化之后,優(yōu)化的代碼結(jié)構(gòu)、編程風格、以及解決問題的思考方式。

              1.2 常用設(shè)計模式 ---- 23種經(jīng)典的設(shè)計模式 GOF

              創(chuàng)建型模式,共5種:工廠方法模式、抽象工廠模式、單例模式、建造者模式、原型模式。
              結(jié)構(gòu)模型,共7種:適配器模式、裝飾器模式、代理模式、外觀模式、橋接模式、組合模式、享元模式。
              行為型模式,共11種:策略模式、模板方法模式、觀察者模式、迭代器模式、責任鏈模式、命令模式、備忘錄模式、狀態(tài)模式、訪問者模式、中介者模式、解釋器模式。

              2.單例模式:
              2.1 要解決的問題:

              所謂類的單例設(shè)計模式,就是采用了一定的方法保證在整個的軟件系統(tǒng)中,對某個類只能存在一個對象實例。

              2.2具體代碼的實現(xiàn):
              餓漢式1:

              class Bank{
                //1.私有化類的構(gòu)造器
                private Bank(){}
                
                //2.創(chuàng)建內(nèi)部類的對象
                //4.要求此對象也必須聲明為靜態(tài)的
                private static Bank instance = new Bank();
              
                //3.提供公共的靜態(tài)的方法,返回類的對象
                public static Bank getInstance(){
                  return instance;
                }
              
              }
              

              餓漢式2:使用了靜態(tài)代碼塊

              class Order {
                //1.私有化類的構(gòu)造器
                private Order(){}
                
                //2.聲明當前類的對象,沒有初始化
                //4.此對象也必須聲明為static的
                private static Order instance = null;
                
                static{
                  instance = new Order();
                }
              
                //3.聲明public static的返回當前類對象的方法
                public static Order getInstance(){
                  return instance;
                }
              
              }
              
              
              

              懶漢式:

              class Order{
                //1.私有化類的構(gòu)造器
                private Order(){}
              
                //2.聲明當前類對象,沒有初始化
                //4.此對象也必須聲明為static的
                public static Order instance = null;
                
                //3.聲明public、static的返回當前類對象的方法
                public static Order getInstance(){
                  if(instance == null){
                    instance = new Order();
                  }
              
                  return instance;
                }
              
              
              }
              

              2.3兩種方法的對比:

              餓漢式:
              壞處:對象加載時間過長
              好處:餓漢式是線程安全的

              懶漢式:
              好處:延遲對象的創(chuàng)建。
              目前的壞處:線程不安全。----> 到多線程內(nèi)容時,在修改。

              本文摘自 :https://www.cnblogs.com/

              開通會員,享受整站包年服務(wù)立即開通 >