日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

创建型、结构型、行为型模式(1)

發(fā)布時(shí)間:2024/7/23 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 创建型、结构型、行为型模式(1) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

來(lái)源:http://blog.csdn.net/wulingmin21/article/details/6753363


目的

創(chuàng)建型模式
Creational Pattern

結(jié)構(gòu)型模式
Structural Patterns

行為型模式
Behavioral Pattern

概念

創(chuàng)建型模式,就是創(chuàng)建對(duì)象的模式,抽象了實(shí)例化的過(guò)程。它幫助一個(gè)系統(tǒng)獨(dú)立于如何創(chuàng)建、組合和表示它的那些對(duì)象。關(guān)注的是對(duì)象的創(chuàng)建,創(chuàng)建型模式將創(chuàng)建對(duì)象的過(guò)程進(jìn)行了抽象,也可以理解為將創(chuàng)建對(duì)象的過(guò)程進(jìn)行了封裝,作為客戶程序僅僅需要去使用對(duì)象,而不再關(guān)心創(chuàng)建對(duì)象過(guò)程中的邏輯

結(jié)構(gòu)型模式是為解決怎樣組裝現(xiàn)有的類,設(shè)計(jì)他們的交互方式,從而達(dá)到實(shí)現(xiàn)一定的功能的目的。結(jié)構(gòu)型模式包容了對(duì)很多問(wèn)題的解決。例如:擴(kuò)展性(外觀、組成、代理、裝飾)封裝性(適配器,橋接)

行為型模式涉及到算法和對(duì)象間職責(zé)的分配,行為模式描述了對(duì)象和類的模式,以及它們之間的通信模式,行為型模式刻劃了在程序運(yùn)行時(shí)難以跟蹤的復(fù)雜的控制流可分為行為類模式和行為對(duì)象模式1.行為模式使用繼承機(jī)制在類間分派行為2.行為對(duì)象模式使用對(duì)象聚合來(lái)分配行為。一些行為對(duì)象模式描述了一組對(duì)等的對(duì)象怎樣相互協(xié)作以完成其中任何一個(gè)對(duì)象都無(wú)法單獨(dú)完成的任務(wù)。

Factory Method

Adapter(類)

Interpreter

Template Method

對(duì)象

Abstract Factory

Adapter(對(duì)象)

Chain of Responsibility

Builder

Bridge

Command

Prototype

Composite

Iterator

Singleton

Decorator

Mediator

Facade

Memento

Flyweight

Observer

Proxy

State

Strategy

Visito

創(chuàng)建型模式

1.抽象工廠模式(Abstract Factory)

??????? 提供一個(gè)接口,讓該接口負(fù)責(zé)創(chuàng)建一系列“相關(guān)或者相互依賴的對(duì)象”,無(wú)需指定他們的具體類。


2.建造者模式(Builder)

??????? 將一個(gè)復(fù)雜對(duì)象的構(gòu)建與其表示向分離,使得同樣的構(gòu)建過(guò)程可以創(chuàng)建不同的表示


3.工廠方法(Factory Method)

??????? 定義一個(gè)用于創(chuàng)建對(duì)象的接口,讓子類決定實(shí)例化哪個(gè)類。FactoryMethod使得一個(gè)類的實(shí)例化延遲到子類

4.原型模式(Prototype)

???????使用原型實(shí)例指定創(chuàng)建對(duì)象的種類,然后通過(guò)拷貝這些原型來(lái)創(chuàng)建型的對(duì)象


5.單例模式(Singleton)

???????保證一個(gè)類僅有一個(gè)實(shí)例,并提供一個(gè)訪問(wèn)它的全局訪問(wèn)點(diǎn)

Abstract Factory

Builder

著重于多個(gè)系列的產(chǎn)品對(duì)象著重于一步步構(gòu)造一個(gè)復(fù)雜對(duì)象
產(chǎn)品立即返回

在最后一步返回產(chǎn)品

(例如:《大話設(shè)計(jì)模式》里面的炒菜程序,每一步過(guò)了之后,“菜”這個(gè)產(chǎn)品才產(chǎn)生出來(lái))

?

Factory Method

Prototypes

通常在Template Methods中被調(diào)用

不需要?jiǎng)?chuàng)建子類

不需要Initialize操作

要求一個(gè)針對(duì)Product類的Intialize操作

重新創(chuàng)建一個(gè)對(duì)象

利用現(xiàn)有的對(duì)象進(jìn)行克隆,當(dāng)兩個(gè)對(duì)象或多個(gè)對(duì)象雷同的時(shí)候,可以考慮用一個(gè)已創(chuàng)建的對(duì)象去克隆出其余的對(duì)象


結(jié)構(gòu)型模式

6.適配器模式(Adapter)

??????????將一個(gè)類的接口轉(zhuǎn)換成客戶希望的另一個(gè)接口。

?? ? ? ? ?Adapter模式使得原本由于接口不兼容而不能一起工作的類可以一起工作


7.橋接(Bridge)

????????? 將抽象部分與實(shí)現(xiàn)部分分離使他們可以獨(dú)立的變化


8.組合(Composite)

????????? 將對(duì)象組合成樹形結(jié)構(gòu)以表示“部分-整體”的層次結(jié)構(gòu)。

?? ? ? ? ?Composite模式使得客戶對(duì)單個(gè)對(duì)象和組合對(duì)象的使用具有一致性


9.裝飾(Decorator)

??????????動(dòng)態(tài)的給一個(gè)對(duì)象添加一些額外的職責(zé)。就增加功能而言,Decorator模式比生成子類更為靈活


10.外觀(Facade)

????????? 為子系統(tǒng)中的一組接口提供一個(gè)一致的界面,Facade模式定義了一個(gè)高層接口,這個(gè)接口使得這一子系統(tǒng)更加容易使用


11.享元(Flyweight)

????????? 運(yùn)用共享技術(shù)有效的支持大量細(xì)粒度的對(duì)象


12.代理(Proxy)

????????? 為其他對(duì)象提供一種代理以控制這個(gè)對(duì)象的訪問(wèn)

行為型模式

13.觀察者(Observer)

定義對(duì)象間的一種一對(duì)多的依賴關(guān)系,當(dāng)一個(gè)對(duì)像的狀態(tài)改變時(shí),所有依賴于它的對(duì)象都得到通知并被自動(dòng)更新。


14.模版方法(TemplateMethod)

定義一個(gè)操作的算法骨架,而將一些步驟延遲到子類中,模版方法使得子類可以不改變一個(gè)算法的結(jié)構(gòu)即可重定義該算法的某些特定步驟。


15.命令(Command)

將一個(gè)請(qǐng)求封裝為一個(gè)對(duì)象,從而使你可用不同的請(qǐng)求對(duì)客戶進(jìn)行參數(shù)化;可以對(duì)請(qǐng)求排隊(duì)或記錄請(qǐng)求日志,以及支持可撤銷的操作


16.狀態(tài)(State)

允許一個(gè)對(duì)象在其內(nèi)部狀態(tài)改變時(shí)改變它的行為,讓對(duì)象看起來(lái)似乎修改了它的類


17.職責(zé)鏈(ChainofResponsibility)

使多個(gè)對(duì)象都有機(jī)會(huì)處理請(qǐng)求,從而避免請(qǐng)求的發(fā)送者和接受者之間的耦合關(guān)系。將這些對(duì)象連成一條鏈,并沿著這條鏈傳遞該請(qǐng)求,直到有一個(gè)對(duì)象處理它為止。


18.解釋器(interpreter)

給定一個(gè)語(yǔ)言,定義它的文法的一種表示,并定義一個(gè)解釋器,這個(gè)解釋器使用該表示來(lái)解釋語(yǔ)言中的句子。


19.中介者(Mediator)

用一個(gè)中介對(duì)象來(lái)封裝一系列的對(duì)象交互。中介者使各對(duì)象不需要顯示地相互引用,從而使其耦合松散,而且可以獨(dú)立地改變他們之間的交互。


20.訪問(wèn)者(Visitor)

表示一個(gè)作用于某對(duì)象結(jié)構(gòu)中的各元素的操作。它使你可以在不改變各元素的類的前提下定義作用于這些元素的新的操作。


21.策略(Strategy)

定義一系列的算法,把它們一個(gè)個(gè)封裝起來(lái),并且使它們可以相互替換。此模式使得算法可獨(dú)立于使用它的客戶而變化。


22.備忘錄(Memento)

在不破壞封裝性的前提下,捕獲一個(gè)對(duì)象的內(nèi)部狀態(tài),并在該對(duì)象之外保存這個(gè)狀態(tài)。這樣以后就可將該對(duì)象恢復(fù)到原先保存的狀態(tài)。


23.迭代器(Iterator)

提供一種方法順序訪問(wèn)一個(gè)聚合對(duì)象中各個(gè)元素,而又不需暴露該對(duì)象的內(nèi)部表示。



參考資料:

《大話設(shè)計(jì)模式》


總結(jié)

以上是生活随笔為你收集整理的创建型、结构型、行为型模式(1)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。