1. 程式人生 > >Java程式設計原則以及設計模式(懶漢、餓漢)

Java程式設計原則以及設計模式(懶漢、餓漢)

一:Java程式設計原則:

單一職責原則:(SRP:Single responsibility principle)又稱單一功能原則,面向物件五個基本原則(SOLID)之一。它規定一個類應該只有一個發生變化的原因,就是指一個類或者模組應該有且只有一個改變的原因

         低耦合,高內聚原則:耦合性:類與類之間產生的關係, 低耦合:讓類與類之間的關係不復雜

內聚:執行一個件事情(功能)的能力,高內聚:一個類能夠完成的事情,不要使用多個類一起來執行!

資料庫((Database)是按照資料結構來組織、儲存和管理資料的倉庫
對某個資料進行增刪改查(查詢很重要的)
定一個介面:
增();
刪();
改();
查();
實現類:
業務邏輯層:
增(){
增加xxx聯絡人/商品列表
}

2:開閉原則
核心思想是:一個物件對擴充套件開放,對修改關閉,開發好一個程式(專案),儘量不要修改原有程式碼
類和類之間假設有關係,更改一個類的功能,其他類已需要更改(增加程式碼的程式碼的書寫量)
SVN(版本控制)/git

二:設計模式:
建立型模式 物件的建立
結構型模式 物件的組成(結構)

行為型模式 物件的行為

單工廠模式--->靜態工廠方法模式 (其又叫簡單工廠模式,與工廠模式不同,其是通過專門定義一個類來負責建立其他類的例項,其例項通常擁有共同父類,其普遍實現主要依靠Java的反射機制。

1)靜態工廠方法統一管理物件的建立。靜態工廠方法通過傳入的引數判斷決定建立哪一個產品的例項,封裝了物件的建立,客戶端只管消費,實現了對責任(模組)的分割。2)靜態工廠方法推遲了產品的例項化。通過XML配置檔案就能改變具體建立的產品例項,修改為其他的產品例項,程式碼不須重新編譯。設計一個工廠類:工廠類提供一些靜態方法,間接的去建立具體的物件優點:
 不需要在建立具體類的物件,而是把建立的工作交給了工廠類來建立!

弊端:

        如果有新的物件增加,或者某些物件的建立方式不同,就需要不斷的修改工廠類,不利於後期的維護

工廠方法模式
提供一個抽象類(抽象工廠)還需要提供一個介面(工廠介面),每一個具體的類都有對應的工廠類(實現工廠介面)
 具體物件的建立工作由繼承抽象工廠的具體類實現
 
 優點:
 客戶端不需要在負責物件的建立(不需顯示建立具體物件),從而明確了各個類的職責,
 如果有新的物件增加,只需要增加一個具體的類和具體的工廠類即可,不影響已有的程式碼,後期維護容易,增強了系統的擴充套件性
弊端:

程式碼書寫程式碼量大了!

設計模式之單例模式
 單例模式核心思想:某些類的物件在建立的時候 ,在系統記憶體始終只有一個物件!
 單例模式分類:1)餓漢式 2)懶漢式(類似於多執行緒環境..)
       其中餓漢式:在載入那個類的時候,物件的建立工作就已經完成了!
        兩種分類在設計上幾乎一樣:
 1)定義個類,將該類的無參構造方法私有化
2)在該類的成員位置建立該類物件 並且一定要私有化,防止外界更改這個物件
 3)在該類中提供靜態成員方法(返回值就是建立的那個物件),能被當前類直接呼叫,static修飾
  Runtime
  每個 Java 應用程式都有一個 Runtime 類例項,使應用程式能夠與其執行的環境相連線。
 public static Runtime getRuntime()返回與當前 Java 應用程式相關的執行時物件
public Process exec(String command)

             throws IOException在單獨的程序中執行指定的字串命令。

懶漢式:
  符合單例模式核心思想
 1)自定義一個類,將無參構造私有化
  2)在成員位置宣告變數
  3)提供公共靜態功能,在裡面判斷的建立該類物件,返回該類物件
  
  如果是開發中,那麼就使用餓漢式(餓漢式它不會出現問題的單例模式)
  如果是面試中,那麼使用懶漢式(因為他是可能出現問題的一種單例模式)

 懶漢式(延遲載入 -->懶載入)

可能會出現問題

 --->多執行緒的問題
 --->校驗多執行緒安全問題的標準
  1)是否是多執行緒環境
 2)是否有共享資料
  3)是否有多條語句對共享資料進行操作  (使用同步機制進行操作)