原创 設計模式之解釋器模式--語法解釋器的實現原理

設計模式之解釋器模式–語法解釋器的實現原理 解釋器模式就是把一個東西解釋成另外一個東西,比如中文解釋成英文。 給定一個語言,定義它的文法的一種表示,比定義一個解釋器,這個解釋器使用該表示來解釋語言中的句子。 爲什麼要使用解釋器

原创 設計模式之中介模式--房產中介的原理

設計模式之中介模式–房產中介的原理 中介模式就是大白話中介,出現一箇中介解耦其他角色。 用一箇中介對象來封裝一系列的對象交互,中介者使各對象不需要顯示的互相引用,從而使其耦合鬆散,而且可以獨立的改變他們之間的交互。 爲什麼要使

原创 windos搭建mysql2主多從高可用集羣架構

windos搭建mysql2主多從高可用集羣架構 有了mysql主從爲什麼還會出現mysql多主多從架構呢? mysql 主主複製 mysql 主從複製是經常被提起的,但是主主複製卻很少提起。主從複製一般是主庫用來寫入,多個從庫用

原创 設計模式之觀察者--發佈訂閱實現原理

設計模式之觀察者–發佈訂閱實現原理 觀察者模式是一種發佈訂閱模式,一對多的推送關係,當觀察者監聽的對象發生改變時,通知所有的觀察者對象。 定義了一種一對多的依賴關係,讓多個觀察者對象同時監聽某一個主題對象。這個主題對象在狀態發生

原创 設計模式之職責鏈模式--請求攔截器中間件審批流的原理

設計模式之職責鏈模式–請求攔截器中間件審批流的原理 職責鏈模式是定義一個鏈條,有不同的步驟,一步接一步完成。 使多個對象都有機會處理請求,從而避免請求的發送者和接收者之間的耦合關係。將這個對象連成一條鏈,並沿着這條鏈傳遞該請求,

原创 設計模式之備忘錄模式--代碼也有後悔藥

設計模式之備忘錄模式–代碼也有後悔藥 備忘錄模式就是做個備份,可以實現撤銷,遊戲存檔這樣的功能。 在不破壞封裝性前提下,捕獲一個對象的內部狀態,並在該對象之外保存這個狀態。這樣以後就可將這個對象恢復到原先保存的狀態。 爲什麼要

原创 設計模式之策略模式--配合工廠模式靈活替換不同算法實現

設計模式之策略模式–配合工廠模式靈活替換不同算法實現 策略模式是一種對可替換的算法或者業務邏輯進行封裝,靈活替換的模式。 定義了算法家族並分別封裝起來,讓他們之間可以互相替換,此模式讓算法的變化,不會影響到使用算法的客戶端。

原创 設計模式之模板設計模式--設計框架骨架使得開發更專注業務

設計模式之模板設計模式–設計框架骨架使得開發更專注業務 模板設計模式是一種根據面向對象的繼承,多態特性出現的模式,模板父類定義了一個框架主邏輯,子類重寫對應子類的部分子邏輯來補充主邏輯。 定義操作中的算法骨架,將一些步驟延遲到子

原创 設計模式之訪問者模式--你永遠用不上的設計模式

設計模式之訪問者模式–你永遠用不上的設計模式 訪問者模式是解耦數據和操作,但是數據必須是穩定的,這樣使增加操作變得更容易。 表示一個作用於某對象結構中的各元素的操作。他使你可以不改變各個元素類的情況下定義作用於這些元素的新操作。

原创 設計模式之迭代器模式--foreach循環的原理

設計模式之迭代器模式–foreach循環的原理 迭代器模式是迭代,循環,一般在語言層面都實現了。 提供一種方法順序訪問一個聚合對象中各個元素,而又不暴露該對象的內部表示。 爲什麼要使用迭代器模式 因爲要循環啊,總有循環遍歷的需

原创 設計模式之裝飾器模式--各種功能隨意擴展

設計模式之裝飾器模式–各種功能隨意擴展 裝飾器模式是靈活給原有類裝飾新功能。 動態的給對象添加額外職責,就增加功能來說,裝飾模式比生成子類更爲靈活。 爲什麼要使用裝飾器模式 如果你需要添加一些額外的功能,再不修改原有類的基礎上

原创 設計模式之組合模式--樹形結構的最佳實踐

設計模式之組合模式–樹形結構的最佳實踐 組合模式是部分組合成整體。 將對象組合成樹形結構以表示’部分’-'整體’的層次結構。組合模式使得用戶對單個對象和組合對象的使用具有一致性。 爲什麼要使用組合模式 最常用到組合模式的應該就

原创 設計模式之適配器模式--不兼容變兼容接口

設計模式之適配器模式–不兼容變兼容接口 適配器模式可以增加接口的易用性,使得不兼容的接口變得兼容。 將一個接口轉換成另外的接口,使得原本不兼容的接口變得兼容。 爲什麼要使用適配器模式 比如你的接口設計存在缺點,不夠易用,不能複

原创 設計模式之原型模式--打印機快速複製的原理

設計模式之原型模式–打印機快速複製的原理 原型模式是一個克隆模式,以一個原型進行克隆,複製。 用原型實例指定創建對象的種類,並且通過拷貝這些原型創建新的對象。 爲什麼要使用原型模式 因爲原型模式可以克隆整個對象而不用重新生成。

原创 設計模式之橋接模式--組合優於繼承的體現

設計模式之橋接模式–組合優於繼承的體現 橋接模式是靈活運用組合對象而不是繼承類來實現功能。 將抽象與實現部分分離,使他們都可以獨立變化。 爲什麼要使用橋接模式 繼承這個面向對象的特性使得我們繼承父類可以繼承父類的功能,在使用多