1. 程式人生 > >APP開發實戰43-設計模式介紹1

APP開發實戰43-設計模式介紹1

13 設計模式介紹

13.1設計模式簡介

    設計模式(Design pattern)是一套被反覆使用、多數人知曉的、經過分類編目的、程式碼設計經驗的總結。使用設計模式是為了可重用程式碼、讓程式碼更容易被他人理解、保證程式碼可靠性。

13.2面向物件設計原則

    面向物件六大原則:

(1)  單一職責原則(Single ResponsibilityPrinciple,SRP)

一個類中應該是一組相關性很高的函式和資料的封裝。

(2)  開閉原則(Open ClosedPrincipal,OCP)

    開閉原則是說模組應對擴充套件開放,而對修改關閉,模組應儘量在不修改原(是"原",指原來的程式碼)程式碼的情況下進行擴充套件。是面向物件設計的終極目標。

(3)  里氏替換原則(LiskovSubstitution Principle,LSP)

    在呼叫父類的地方,換成其子類也完全可以執行。面嚮物件語言的三大特點是封裝、繼承和多型。里氏替換原則依賴於繼承和多型。

(4)  依賴倒置原則(DependencyInversion Principle,DIP)

    抽象不應該依賴於細節,細節應當依賴於抽象。要針對介面程式設計,而不是針對實現程式設計。高層模組不應該依賴底層模組,兩者都應該依賴其抽象。

(5)  介面隔離原則(InterfceSegregation Principle,ISP)

    類不應該依賴它不需要的介面,且類依賴的介面儘可能的小,每一個介面應該是一種角色,不多不少,不幹不該乾的事,該乾的事都要幹。

(6)  最小知識原則(Principle ofLeast Knowledge,PLK,也叫迪米特法則)

    一個類應該對自己需要耦合或呼叫的類知道得最少,類的內部如何實現與呼叫者或者依賴者沒關係,呼叫者或依賴者只需知道它需要的方法即可,其他的可一概不用管。

設計模式就是實現了這些原則,從而達到了程式碼複用、增加可維護性的目的。

13.3設計模式類別

    設計模式分為三種類型:

(1)  建立型模式

單例模式、抽象工廠模式、建造者模式、工廠模式、原型模式

(2)  結構型模式

介面卡模式、橋接模式、裝飾模式、組合模式、外觀模式、享元模式、代理模式。

(3)  行為型模式

模版方法模式、命令模式、迭代器模式、觀察者模式、中介者模式、備忘錄模式、直譯器模式、狀態模式、策略模式、職責鏈模式、訪問者模式。

下面介紹一些開發APP時常用的模式。

參考:《Android原始碼設計模式解析與實戰》

相關推薦

APP開發實戰43-設計模式介紹1

13 設計模式介紹 13.1設計模式簡介     設計模式(Design pattern)是一套被反覆使用、多數人知曉的、經過分類編目的、程式碼設計經驗的總結。使用設計模式是為了可重用程式碼、讓程式碼更容易被他人理解、保證程式碼可靠性。 13.2面向物件設計原則     面

APP開發實戰45-設計模式介紹3

13.3.5策略模式 策略模式定義一系列的演算法,並把每一個演算法封裝起來, 且使它們可相互替換,使得演算法的變化可獨立於使用它的客戶。 此模式的使用場景:  (1)針對同一類問題的多種處理方式,僅僅是具體行為有差別時。 (2)需要安全地封裝多種同一型別操作時。 (3)出

APP開發實戰46-設計模式介紹4

13.3.9備忘錄模式 備忘錄模式在不破壞封裝性的前提下,捕獲一個物件的內部狀態,並在該物件之外儲存這個狀態。這樣以後就可將該物件恢復到儲存的狀態。 此模式的使用場景: (1)需要儲存一個物件在某一時刻的狀態或部分狀態。 (2)如果用一個介面來讓其他物件得到這些狀態,將會暴

APP開發實戰47-設計模式介紹5

13.3.12代理模式 代理模式為其他物件提供一個代理以控制對這個物件的訪問。 當無法或不想直接訪問某個物件或訪問某個物件粗耨困難時可以通過一個代理物件來間接訪問,為了保證客戶端使用的透明性,委託物件與代理物件需要實現相同的介面。      iOS在不同介面間的傳值、And

APP開發實戰90-向量圖介紹

23.2向量圖介紹 向量圖,也叫做向量圖,簡單的說,就是縮放不失真的影象格式。向量圖是通過多個物件的組合生成的,對其中的每一個物件的紀錄方式,都是以數學函式來實現的;一幅圖可以解為一系列由點、線、面等到組成的子圖,向量圖記錄的是物件的幾何形狀、線條粗細和色彩等,並不是象點陣

APP開發實戰15-字元編碼介紹

5 字元編碼介紹 5.1 簡介 5.1.1字元 字元是抽象的最小文字單位。它沒有固定的形狀(可能是一個字形),而且沒有值。“A”是一個字元,“€”(德國、法國和許多其他歐洲國家通用貨幣的標誌)也是一個字元。“中”“國”這是兩個漢字字元。字元僅僅代表一個符號,沒有任何實際值的

APP開發實戰132-Git命令介紹

33.2Git命令介紹 一、 Git 常用命令速查 gitbranch 檢視本地所有分支 git status 檢視當前狀態 git commit 提交 git branch -a 檢視所有的分支 git branch -r 檢視遠端所有分支 git commit -a

java開發-23種設計模式之菜鳥解析1

java開發有23種設計模式,很多工齡沒那麼長的java開發程式設計師可能都不會特意去了解它們,其實它存在的意義不只是應對各種面試,而是在開發過程中簡化、邏輯化、分類化你的程式碼,讓你的程式碼可讀性更高,為你的開發帶來便利的東西。廢話不多說,開始正題 首先大家要了解設計模式的分類,一般分為三個型

APP開發實戰34-HTTPS介紹

8 HTTPS介紹 8.1協議簡介 HTTPS(Hyper Text Transfer Protocol over Secure Socket Layer),是HTTP的安全版,在HTTP和TCP層間加入SSL\TLS層,以實現內容加密、身份認證和保證資料完整性。 (SSL

APP開發實戰40-MD5介紹

12 加密介紹 12.1MD5簡介 MD5即Message-Digest Algorithm5(資訊-摘要演算法5),用於確保資訊傳輸完整一致。是計算機廣泛使用的雜湊演算法之一(又譯摘要演算法、雜湊演算法)。MD5的作用是讓大容量資訊在用數字簽名軟體簽署私人金鑰前被"壓縮"

IOS開發中的幾種設計模式介紹

ios開發學習中,經常弄不清楚ios的開發模式,今天我們就來進行簡單的總結和探討~ (一)代理模式 應用場景:當一個類的某些功能需要由別的類來實現,但是又不確定具體會是哪個類實現。 優勢:解耦合 敏捷原則:開放-封閉原則 例項:tableview的 資料來源delegate

APP開發實戰39-Session介紹

11 Session介紹 11.1Session簡介 Session在網路應用中,稱為“會話控制”。Session物件儲存特定使用者會話所需的屬性及配置資訊,如登入資訊等(Session是一個容器,可以存放會話過程中的任何物件)。Session機制採用的是在伺服器端保持狀態

APP開發實戰38-Cookie介紹

10 Cookie介紹 10.1Cookie簡介 HTTP是一種無狀態性的協議。這是因為此種協議不要求瀏覽器在每次請求中標明它自己的身份,並且瀏覽器以及伺服器之間並沒有保持一個永續性的連線用於多個頁面之間的訪問。 當用戶訪問http://example.com這個域名的時

APP開發實戰163-JobScheduler介紹

許多APP都需要定期執行某個或某幾項任務,如在聯網狀態下,每隔一段時間上傳日誌資料給伺服器,或在手機處於Idle狀態時,定期清理手機的儲存空間等。 以往實現這樣的功能時,往往需要啟動一個定時器不斷的輪詢執行任務的條件是否滿足,如果滿足還需啟動定時器定期執行任務,這種機制的實

APP開發實戰8-API介面設計

3.1介面設計注意事項 (1)首先需要確定APP和伺服器間用什麼格式傳輸資料,常用的有兩種:XML和JSON。如下使用XML格式和JSON格式表示同樣的資料,進行比較: <?xmlversion

遊戲開發中的設計模式——1.狀態模式

這篇博文我記錄了狀態模式在遊戲開發中的簡單應用,用於與切換各個遊戲場景。但是在實際的遊戲開發中,本人並不建議使用這種方式切換遊戲場景,因為Unity本來就是基於元件的遊戲引擎。但是,知識學多了有害無益,為了學習而學習嘛。 先上總圖: 上圖中分為兩個模組,

JAVA設計模式 1 設計模式介紹、單例模式的理解與使用

資料結構我們已經學了一部分了。是該瞭解瞭解設計模式了。習慣了`CRUD`的你,也該瞭解瞭解這一門神器、我為啥要說是神器呢? 因為在大廠的面試環節、以及很多的比如 - Springboot - Mybatis 等開源框架中、大量的使用到了設計模式。為了我們在之後學習原始碼的時候不再懵逼,為啥這程式碼能這樣

23種設計模式介紹以及單例模式的學習

單例模式 餓漢式 23種設計模式 gof23 1、GOF23 設計模式總共分成創建型模式、結構型模式和行為型模式三種: a、創建型模式: - 單例模式、工廠模式、抽象工廠模式、建造者模式、原型模式 b、構建型模式: - 適配器模式、橋接模式、裝配模式、組合模式、建造者模

23種設計模式介紹(一)---- 創建型模式

接口 ret static 深復制 return 對象 相互 object c png 由於設計模式篇幅比較大,如果在一篇文章講完所有的設計模式的話不利於閱讀。於是我把它分為三篇文章 23種設計模式介紹(一)---- 創建型模式 23種設計模式介紹(二)---- 結構型模

設計模式筆記1:簡單工廠模式

1.3 簡單 修改 作用 面向對象 對象 面向 tro 計算   如果想成為一名更優秀的軟件設計師,了解優秀軟件設計的演變過程比學習優秀設計本身更有價值。 1.1 面向對象的好處   通過封裝、繼承多態把程序的耦合度降低,使用設計模式使得程序更加靈活,容易修改,易於復用