目前常用的設計模式有23種,何為設計模式?神聖嗎?難學嗎?只要堅持學,用,總結,都不難。設計模式說白了就是前人總結的設計經驗,用的多了也就熟練了,但是也不要生搬硬套的去用,我們平時或多或少都有接觸,只不過沒有細緻歸納,總體分為三大型別,建立型、結構型、行為型,後面會一一詳細介紹。
一、建立型模式
工廠方法
抽象工廠
建造者模式
單例模式
原型模式
二、結構型模式
介面卡模式
橋接模式
組合模式
裝飾模式
外觀模式
享元模式
**模式
三、行為型模式
責任鏈模式
命令模式
直譯器模式
迭代器模式
中介模式
備忘錄模式
觀察者模式
狀態模式
策略模式
模板方法
訪問者模式
常用的設計原則:
單一職責:高內聚低耦合,對外提供一種功能
介面分離:乙個介面對外只提供一種方法
依賴倒置:依賴於抽象,不依賴於具體實現
黎克特制替換:任何父類出現的地方都可以用子類代替。覆蓋或實現父類的方法時引數可以放大,這是子類過載。
開閉原則:對修改關閉,對擴充套件開放
迪公尺特原則:乙個物件應該對其他物件盡可能少地了解,降低耦合。
每天一種設計模式 模板方法
松本行弘的程式世界 對模板方法 template method 的說明非常清晰 在父類的乙個方法中定義演算法的框架,其中幾個步驟的具體內容則留給子類來實現。class a def initialize name jinbin word hello end def say word puts welc...
設計模式的一種 命令模式
命令模式是關於怎麼樣處理乙個物件請求另乙個物件呼叫其方法完成某項任務的一種模式,在命令模式中,當乙個物件請求另乙個物件呼叫其方法失,而又不想和被呼叫的物件發生直接關係,而是把請求組封裝在乙個請求物件中,既是把引用封裝在方法中,以達到傳送命令的效果 在呼叫時 被呼叫的只需要和命令物件打交道,四種角色 ...
學會一種主流的設計模式
在設計通訊時,我們可以採用面向訊息的中介軟體,比如apache activemq rabbitmq apache rocketmq apache kafka等,也有類似與 google protocol buffer thrift等 rpc框架。在設計分布式計算時,我們分布式計算可以採用 mapre...