1. 程式人生 > >Love life

Love life

1.總體來說設計模式分為三大類:

建立型模式,共五種:工廠方法模式抽象工廠模式單例模式建造者模式原型模式

結構型模式,共七種:介面卡模式裝飾者模式代理模式外觀模式橋接模式組合模式享元模式

行為型模式,共十一種:策略模式模板方法模式觀察者模式迭代子模式責任鏈模式命令模式備忘錄模式狀態模式訪問者模式中介者模式直譯器模式

這裡寫圖片描述

2.設計模式的六大原則

1、開閉原則(Open Close Principle)

開閉原則就是說對擴充套件開放,對修改關閉。在程式需要進行拓展的時候,不能去修改原有的程式碼,實現一個熱插拔的效果。所以一句話概括就是:為了使程式的擴充套件性好,易於維護和升級。想要達到這樣的效果,我們需要使用介面和抽象類,後面的具體設計中我們會提到這點。

2、里氏代換原則(Liskov Substitution Principle)

里氏代換原則(Liskov Substitution Principle LSP)面向物件設計的基本原則之一。 里氏代換原則中說,任何基類可以出現的地方,子類一定可以出現。 LSP是繼承複用的基石,只有當衍生類可以替換掉基類,軟體單位的功能不受到影響時,基類才能真正被複用,而衍生類也能夠在基類的基礎上增加新的行為。里氏代換原則是對“開-閉”原則的補充。實現“開-閉”原則的關鍵步驟就是抽象化。而基類與子類的繼承關係就是抽象化的具體實現,所以里氏代換原則是對實現抽象化的具體步驟的規範。—— From Baidu 百科

3、依賴倒轉原則(Dependence Inversion Principle)

這個是開閉原則的基礎,具體內容:真對介面程式設計,依賴於抽象而不依賴於具體。

4、介面隔離原則(Interface Segregation Principle)

這個原則的意思是:使用多個隔離的介面,比使用單個介面要好。還是一個降低類之間的耦合度的意思,從這兒我們看出,其實設計模式就是一個軟體的設計思想,從大型軟體架構出發,為了升級和維護方便。所以上文中多次出現:降低依賴,降低耦合。

5、迪米特法則(最少知道原則)(Demeter Principle)

為什麼叫最少知道原則,就是說:一個實體應當儘量少的與其他實體之間發生相互作用,使得系統功能模組相對獨立。

6、合成複用原則(Composite Reuse Principle)

原則是儘量使用合成/聚合的方式,而不是使用繼承。

相關推薦

Love life

1.總體來說設計模式分為三大類: 建立型模式,共五種:工廠方法模式、抽象工廠模式、單例模式、建造者模式、原型模式。 結構型模式,共七種:介面卡模式、裝飾者模式、代理模式、外觀模式、橋接模式、組合模式、享元模式。 行為型模式,共十一種:策略模式、模板方法模式

[Starain工作室] Love LifeLove Code、Love you

 CString strBuf;//post資料 wchar_t * wszString = strBuf.GetBuffer(0);// 如果是Unicode 字符集 //預轉換,得到所需空

Love Your Life

However mean your life is,meet it and live it ;do not shun it and call it hardnames.It is not so bad as you suppose.It looks poorest when you are ri

Love coding,enjoy life

問題描述 假設有一個能裝入總體積為T的揹包和n件體積分別為w1,w2,…wn的物品,能否從n件物品中挑選若干件恰好裝滿揹包,即使w1+w2+…+wm=T,要求找出所有滿足上述條件的解。 例如:當T=10,各件物品的體積{1,8,4,3,5,2}時,可找到下列4組解:  

POJ 3294 UVA 11107 Life Forms 後綴數組

ise -c orm pac str lap sizeof true n-1 相同的題目,輸出格式有區別。 給定n個字符串,求最長的子串,使得它同時出現在一半以上的串中。 不熟悉後綴數組的童鞋建議先去看一看如何用後綴數組計算兩個字符串的最長公共子串 Ural1517 這道題

poj 2492 a bug's life 簡單種類並查集

ont nbsp root 遞推 spl bsp n) void display 題意大致為找同性戀的蟲子。。。。 這個比食物鏈要簡單些。思路完全一致,利用取余操作實現關系之間的遞推。 個人感覺利用向量,模和投影可能可以實現具有更加復雜關系的並查集。 1 #inclu

poj2492--A Bug's Life(並查集變形)

esp pst algorithm table out from nsis with bug else if A Bug‘s Life Time Limit: 10000MS Memory Limit: 65536K Total Submissions:

實訓第五天--The great pleasure in life is doing what people say you cannot do

時有 2.3 money 條件 換行 類型 精確 pri 溢出 回顧:1.變量 用於指代內存中的一塊區域 作用:存數2.聲明 類型 變量名 int a,b 3.初始化 int a=10; 4.命名 不能以數字開

everything of people’s life can changed in their twenties

好的 爸爸 勤奮 chan 無限 互聯網 位數 sim span 還記得三年前,獨自背著行李,流浪遠方,來到以前僅僅在地理課本上才熟悉的北國。帶著好奇,帶著期望,帶著激動的心情,想感受毛爺爺當年霸氣的北國風光,千裏冰封的漂亮,想知道北方的面條究竟有多少種花樣,想走

POJ 1678 I Love this Game

first 先行者 logs 最大差值 sin return algo pre sstream 題目鏈接:http://poj.org/problem?id=1678 動態博弈。用dp[i]來表示如果先行者首先選擇第i個數字的話能取得的最大差值。由於每次選擇的數字一定比上一

【BZOJ2780】[Spoj]8093 Sevenk Love Oimaster 廣義後綴自動機

當前 named ostream number 一個點 urn mil ios abc 【BZOJ2780】[Spoj]8093 Sevenk Love Oimaster Description Oimaster and sevenk love each

Codeforces Round #422 (Div. 2) A. I'm bored with life 暴力

out line leave c++ ren round ... from cif A. I‘m bored with life Holidays have finished. Thanks to the help of t

ACdream原創群賽(13)のwuyiqi退役專場 C True love

ems namespace ade scan nsh user space please code True love Time Limit: 4000/2000 MS (Java/Others) Memory Limit:128000/64000

HDU 4324:Triangle LOVE( 拓撲排序 )

添加 crazy integer single mod world ase ons using pid=4324">Triangle LOVE Time Limit: 2000/1000 MS (Java/Others) Memory

POJ 2492 A Bug's Life (並查集)

ont set -1 flat com rom init red least Background Professor Hopper is researching the sexual behavior of a rare species of bugs. He assum

Round #422 A. I'm bored with life

exactly learn ica largest color esp res error divide Holidays have finished. Thanks to the help of the hacker Leha, Noora managed to ent

hdu 4324 Triangle LOVE 拓撲排序

clu ring ng- Language rip processor ++ ret amp #include<stdio.h> #include<stack> #include<string.h> #include&

ZOJ 3886 Nico Number(篩素數+Love(線)Live(段)樹)

lang urn process pos || hide 取模 algorithm padding problemCode=3886">ZOJ 3886 題意: 定義一種NicoNico數x,x有下面特征: 全部不大於x且與x互質的數

【轉】Life of a triangle - NVIDIA's logical pipeline

ces inside indices eache next have process specific set From:https://developer.nvidia.com/content/life-triangle-nvidias-logical-pipeline

【Troywar love Maths】——莫比烏斯反演

pen 輸出格式 targe div -h prim 沒有 .cn color           2816. Troywar loves Maths                 ★★☆ 輸入文件:Troy_1.in 輸出文件:Troy_1.out 簡單對