軟體設計模式介紹

2021-10-20 06:28:16 字數 2899 閱讀 3643

單例模式是一種常用的軟體設計模式,其定義是單例物件的類只能允許乙個例項存在。

優點

缺點

示例:

public class singleton 

// 以自己例項為返回值的靜態的公有方法,靜態工廠方法

public static singleton1 getsingleton()

}

工廠顧名思義就是建立產品,根據產品是具體產品還是具體工廠可分為簡單工廠模式和工廠方法模式,根據工廠的抽象程度可分為工廠方法模式和抽象工廠模式。該模式用於封裝和管理物件的建立,是一種建立型模式。

工廠方法模式的結構組成

抽象工廠類廠(shoesfactory):工廠方法模式的核心類,提供建立具體產品的介面,由具體工廠類實現。

具體工廠類nikeproducer\adidasproducer\liningproducer):繼承於抽象工廠,實現建立對應具體產品物件的方式。

抽象產品類shoes):它是具體產品繼承的父類(基類)。

具體產品類nikeshoes\adidasshoes\liningshoes):具體工廠所建立的物件,就是此類。

示例:

// 鞋子抽象類

class shoes

virtual void show() = 0;

};// 耐克鞋子

class nikeshoes : public shoes

};// 阿迪達斯鞋子

class adidasshoes : public shoes

};// 李寧鞋子

class liningshoes : public shoes

};// 總鞋廠

class shoesfactory

};// 耐克生產者/生產鏈

class nikeproducer : public shoesfactory

};// 阿迪達斯生產者/生產鏈

class adidasproducer : public shoesfactory

};// 李寧生產者/生產鏈

class liningproducer : public shoesfactory

};

當物件間存在一對多關係時,則使用觀察者模式(observer pattern)。比如,當乙個物件被修改時,則會自動通知它的依賴物件。觀察者模式屬於行為型模式。

實現:

觀察者模式使用三個類 subject、observer 和 client。 

subject 物件帶有繫結觀察者到 client 物件和從 client 物件解綁觀察者的方法。我們建立 subject 類、observer 抽象類和擴充套件了抽象類 observer 的實體類。

示例:

//建立 subject 類。

public class subject

public void setstate(int state)

public void attach(observer observer)

public void notifyallobservers()

}}//建立 observer 類。

public abstract class observer

//建立實體觀察者類。

public class binaryobserver extends observer

@override

public void update()

}//建立實體觀察者類。

public class octalobserver extends observer

@override

public void update()

}//建立實體觀察者類。

public class hexaobserver extends observer

@override

public void update()

}//使用 subject 和實體觀察者物件。

public class observerpatterndemo

}

輸出結果: 

first state change:15 

hex string:f 

octal string:17 

binary string:1111 

second state change:10 

hex string:a 

octal string:12 

binary string:1010

生產者消費者模式就是通過乙個容器來解決生產者和消費者的強耦合問題生產者和消費者彼此之間不直接通訊,而通過阻塞佇列來進行通訊,所以生產者生產完資料之後不用等待消費者處理,直接扔給阻塞佇列,消費者不找生產者要資料,而是直接從阻塞佇列裡取,阻塞佇列就相當於乙個緩衝區,平衡了生產者和消費者的處理能力。這個阻塞佇列就是用來給生產者和消費者解耦的

組成:

優點:

軟體設計模式

軟體設計模式是軟體設計經驗的總結,是對軟體設計中反覆出現的設計問題的成功解決方案的描述。四元素 名稱 問題 解決方案 效果 1 重用設計,重用設計比重用 更有意義,它會自動帶來 的重用 2 為設計提供公用的詞彙,每個模式名就是乙個設計詞彙,其概念使得程式設計師間交流更方便 3 在開發文件中採用模式詞...

軟體設計模式

建立型設計模式 類模式 物件模式 靜態工廠方法模式 static factory 工廠方法 factory method 抽象工廠 abstract factory 單例模式 singleton 原型模式 prototype 建造模式 builder 介面卡模式 adapter 介面卡模式 adap...

軟體設計模式

軟體設計模式 軟體設計模式 design pattern 又稱設計模式,是一套被反覆使用 多數人知曉的 經過分類編目的 設計經驗的總結。使用設計模式是為了可重用 讓 更容易被他人理解 保證 可靠性 程式的重用性。總的來說 就是 設計經驗的總結,能夠讓 穩定,拓展性更強,一系列程式設計的思想。設計模式...