導航:首頁 > 編程語言 > 中介者模式java

中介者模式java

發布時間:2022-09-05 14:06:18

1. java常用的的設計模式和開發模式都有哪些

設計模式主要分三個類型、創建型、結構型和行為型。設計模式分:3種類型及23種模式。

JAVA中的開發模式:MVC是一個很常用的程序開發設計模式,M-Model(模型):封裝應用程序的狀態;V-View(視圖):表示用戶界面;C-Controller(控制器):對用戶的輸入作出反應,創建並設置模型。

(1)中介者模式java擴展閱讀

創建型模式:單例模式、抽象工廠模式、建造者模式、工廠模式、原型模式。

結構型模式:適配器模式、橋接模式、裝飾模式、組合模式、外觀模式、享元模式、代理模式。

行為型模式:模版方法模式、命令模式、迭代器模式、觀察者模式、中介者模式、備忘錄模式、解釋器模式(Interpreter模式)、狀態模式、策略模式、職責鏈模式(責任鏈模式)、訪問者模式。

2. java常用的設計模式有那些,各有什麼優缺點

設計模式:模式是一種問題的解決思路,它已經適用於一個實踐環境。並且可以適用於其他環境。

設計模式的分類:分布式編程模式,用戶界面模式,數據模型模式三大類。

設計模式的作用:設計的重用;

為設計提供共同的詞彙,每個模式名就是一個設計詞彙,其概念使得程序員的交流變得方便;

在開發文檔中採用模式詞彙可以讓其他人更容易理解你的想法。

GoF設計模式的分類:
根據目的准則分類:
1. 創建型:creational 與對象的創建有關。
2. 結構型:Structural 處理類或對象之間的組合。
3. 行為型:behavioral 描述類或對象如何交互及如何分配職責。

創建型模式

1.抽象工廠模式 AbstractFactory
2.建造者模式 Builder
3.工廠方法模式 Factory Method
4.原型模式 Prototype
5.單例模式 Singleton

結構型模式

1.適配器模式 Adapter
2.橋接模式 Bridge
3.組合模式 Composite
4.裝飾模式 Decorator
5.外觀模式 Facade
6.享元模式 Flyweight
7.代理模式 Proxy

行為模式

1.職責鏈模式 Chain of Responsibility
2.命令模式 Command
3.解釋器模式 Interpreter
4.迭代器模式 Iterator
5.中介者模式 Mediator
6.備忘錄模式 Memento
7.觀察者模式 Observer
8.狀態模式 State
9.策略模式 Strategy
10.模板方法模式 Template Method
11.訪問者模式 Visitor

其他看參考資料

3. java 23種設計模式

設計模式主要分三個類型:創建型、結構型和行為型。
其中創建型有:
一、Singleton,單例模式:保證一個類只有一個實例,並提供一個訪問它的全局訪問點
二、Abstract Factory,抽象工廠:提供一個創建一系列相關或相互依賴對象的介面,而無須指定它們的具體類。
三、Factory Method,工廠方法:定義一個用於創建對象的介面,讓子類決定實例化哪一個類,Factory Method使一個類的實例化延遲到了子類。
四、Builder,建造模式:將一個復雜對象的構建與他的表示相分離,使得同樣的構建過程可以創建不同的表示。
五、Prototype,原型模式:用原型實例指定創建對象的種類,並且通過拷貝這些原型來創建新的對象。
行為型有:
六、Iterator,迭代器模式:提供一個方法順序訪問一個聚合對象的各個元素,而又不需要暴露該對象的內部表示。
七、Observer,觀察者模式:定義對象間一對多的依賴關系,當一個對象的狀態發生改變時,所有依賴於它的對象都得到通知自動更新。
八、Template Method,模板方法:定義一個操作中的演算法的骨架,而將一些步驟延遲到子類中,TemplateMethod使得子類可以不改變一個演算法的結構即可以重定義該演算法得某些特定步驟。
九、Command,命令模式:將一個請求封裝為一個對象,從而使你可以用不同的請求對客戶進行參數化,對請求排隊和記錄請求日誌,以及支持可撤銷的操作。
十、State,狀態模式:允許對象在其內部狀態改變時改變他的行為。對象看起來似乎改變了他的類。
十一、Strategy,策略模式:定義一系列的演算法,把他們一個個封裝起來,並使他們可以互相替換,本模式使得演算法可以獨立於使用它們的客戶。
十二、China of Responsibility,職責鏈模式:使多個對象都有機會處理請求,從而避免請求的送發者和接收者之間的耦合關系
十三、Mediator,中介者模式:用一個中介對象封裝一些列的對象交互。
十四、Visitor,訪問者模式:表示一個作用於某對象結構中的各元素的操作,它使你可以在不改變各元素類的前提下定義作用於這個元素的新操作。
十五、Interpreter,解釋器模式:給定一個語言,定義他的文法的一個表示,並定義一個解釋器,這個解釋器使用該表示來解釋語言中的句子。
十六、Memento,備忘錄模式:在不破壞對象的前提下,捕獲一個對象的內部狀態,並在該對象之外保存這個狀態。
結構型有:
十七、Composite,組合模式:將對象組合成樹形結構以表示部分整體的關系,Composite使得用戶對單個對象和組合對象的使用具有一致性。
十八、Facade,外觀模式:為子系統中的一組介面提供一致的界面,fa?ade提供了一高層介面,這個介面使得子系統更容易使用。
十九、Proxy,代理模式:為其他對象提供一種代理以控制對這個對象的訪問
二十、Adapter,適配器模式:將一類的介面轉換成客戶希望的另外一個介面,Adapter模式使得原本由於介面不兼容而不能一起工作那些類可以一起工作。
二十一、Decrator,裝飾模式:動態地給一個對象增加一些額外的職責,就增加的功能來說,Decorator模式相比生成子類更加靈活。
二十二、Bridge,橋模式:將抽象部分與它的實現部分相分離,使他們可以獨立的變化。
二十三、Flyweight,享元模式

4. java23個設計模式有哪些

一共23種設計模式!
引用《軟體秘笈-設計模式那點事》書籍:
按照目的來分,設計模式可以分為創建型模式、結構型模式和行為型模式。
創建型模式用來處理對象的創建過程;結構型模式用來處理類或者對象的組合;行為型模式用來對類或對象怎樣交互和怎樣分配職責進行描述。
創建型模式用來處理對象的創建過程,主要包含以下5種設計模式:

工廠方法模式(Factory
Method
Pattern)

抽象工廠模式(Abstract
Factory
Pattern)

建造者模式(Builder
Pattern)

原型模式(Prototype
Pattern)

單例模式(Singleton
Pattern)
結構型模式用來處理類或者對象的組合,主要包含以下7種設計模式:

適配器模式(Adapter
Pattern)

橋接模式(Bridge
Pattern)

組合模式(Composite
Pattern)

裝飾者模式(Decorator
Pattern)

外觀模式(Facade
Pattern)

享元模式(Flyweight
Pattern)

代理模式(Proxy
Pattern)
行為型模式用來對類或對象怎樣交互和怎樣分配職責進行描述,主要包含以下11種設計模式:

責任鏈模式(Chain
of
Responsibility
Pattern)

命令模式(Command
Pattern)

解釋器模式(Interpreter
Pattern)

迭代器模式(Iterator
Pattern)

中介者模式(Mediator
Pattern)

備忘錄模式(Memento
Pattern)

觀察者模式(Observer
Pattern)

狀態模式(State
Pattern)

策略模式(Strategy
Pattern)

模板方法模式(Template
Method
Pattern)

訪問者模式(Visitor
Pattern)

5. java設計模式的兩大主題是什麼,

設計模式的兩大主題是系統復用與系統擴展。Java具有簡單性、面向對象、分布式、健壯性、安全性、平台獨立與可移植性、多線程、動態性等特點。Java可以編寫桌面應用程序、Web應用程序、分布式系統和嵌入式系統應用程序等。

(5)中介者模式java擴展閱讀

由四方面組成:

(1)Java編程語言

(2)Java類文件格式

(3)Java虛擬機

(4)Java應用程序介面

當編輯並運行一個Java程序時,需要同時涉及到這四種方面。使用文字編輯軟體(例如記事本、寫字板、UltraEdit等)或集成開發環境(Eclipse、MyEclipse等)在Java源文件中定義不同的類 ,通過調用類(這些類實現了Java API)中的方法來訪問資源系統,把源文件編譯生成一種二進制中間碼,。

存儲在class文件中,然後再通過運行與操作系統平台環境相對應的Java虛擬機來運行class文件,執行編譯產生的位元組碼,調用class文件中實現的方法來滿足程序的Java API調用。

6. java 設計模式用了哪些

在JDK(Java Development Kit)類庫中,開發人員使用了大量設計模式,正因為如此,我們可以在不修改JDK源碼的前提下開發出自己的應用軟體,研究JDK類庫中的模式實例也不失為學習如何使用設計模式的一個好方式。

創建型模式:

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

•Java.util.Calendar#getInstance()

•java.util.Arrays#asList()

•java.util.ResourceBundle#getBundle()

•java.NET.URL#openConnection()

•java.sql.DriverManager#getConnection()

•java.sql.Connection#createStatement()

•java.sql.Statement#executeQuery()

•java.text.NumberFormat#getInstance()

•java.lang.management.ManagementFactory (所有getXXX()方法)

•java.nio.charset.Charset#forName()

•javax.xml.parsers.DocumentBuilderFactory#newInstance()

•javax.xml.transform.TransformerFactory#newInstance()

•javax.xml.xpath.XPathFactory#newInstance()

(2)建造者模式(Builder)

•java.lang.StringBuilder#append()

•java.lang.StringBuffer#append()

•java.nio.ByteBuffer#put() (CharBuffer, ShortBuffer, IntBuffer,LongBuffer, FloatBuffer和DoubleBuffer與之類似)

•javax.swing.GroupLayout.Group#addComponent()

•java.sql.PreparedStatement

•java.lang.Appendable的所有實現類

(3)工廠方法模式(Factory Method)

•java.lang.Object#toString() (在其子類中可以覆蓋該方法)

•java.lang.Class#newInstance()

•java.lang.Integer#valueOf(String) (Boolean, Byte, Character,Short, Long, Float和Double與之類似)

•java.lang.Class#forName()

•java.lang.reflect.Array#newInstance()

•java.lang.reflect.Constructor#newInstance()

(4)原型模式(Prototype)

•java.lang.Object#clone() (支持淺克隆的類必須實現java.lang.Cloneable介面)

(5)單例模式(Singleton)

•java.lang.Runtime#getRuntime()

•java.awt.Desktop#getDesktop()

結構型模式:

(1)適配器模式(Adapter)

•java.util.Arrays#asList()

•javax.swing.JTable(TableModel)

•java.io.InputStreamReader(InputStream)

•java.io.OutputStreamWriter(OutputStream)

•javax.xml.bind.annotation.adapters.XmlAdapter#marshal()

•javax.xml.bind.annotation.adapters.XmlAdapter#unmarshal()

(2)橋接模式(Bridge)

•AWT (提供了抽象層映射於實際的操作系統)

•JDBC

(3)組合模式(Composite)

•javax.swing.JComponent#add(Component)

•java.awt.Container#add(Component)

•java.util.Map#putAll(Map)

•java.util.List#addAll(Collection)

•java.util.Set#addAll(Collection)

(4)裝飾模式(Decorator)

•java.io.BufferedInputStream(InputStream)

•java.io.DataInputStream(InputStream)

•java.io.BufferedOutputStream(OutputStream)

•java.util.zip.ZipOutputStream(OutputStream)

•java.util.Collections#checked[List|Map|Set|SortedSet|SortedMap]()

(5)外觀模式(Facade)

•java.lang.Class

•javax.faces.webapp.FacesServlet

(6)享元模式(Flyweight)

•java.lang.Integer#valueOf(int)

•java.lang.Boolean#valueOf(boolean)

•java.lang.Byte#valueOf(byte)

•java.lang.Character#valueOf(char)

(7)代理模式(Proxy)

•java.lang.reflect.Proxy

•java.rmi.*

行為型模式:

(1)職責鏈模式(Chain of Responsibility)

•java.util.logging.Logger#log()

•javax.servlet.Filter#doFilter()

(2)命令模式(Command)

•java.lang.Runnable

•javax.swing.Action

(3)解釋器模式(Interpreter)

•java.util.Pattern

•java.text.Normalizer

•java.text.Format

•javax.el.ELResolver

(4)迭代器模式(Iterator)

•java.util.Iterator

•java.util.Enumeration

(5)中介者模式(Mediator)

•java.util.Timer (所有scheleXXX()方法)

•java.util.concurrent.Executor#execute()

•java.util.concurrent.ExecutorService (invokeXXX()和submit()方法)

•java.util.concurrent.ScheledExecutorService (所有scheleXXX()方法)

•java.lang.reflect.Method#invoke()

(6)備忘錄模式(Memento)

•java.util.Date

•java.io.Serializable

•javax.faces.component.StateHolder

(7)觀察者模式(Observer)

•java.util.Observer/java.util.Observable

•java.util.EventListener (所有子類)

•javax.servlet.http.HttpSessionBindingListener

•javax.servlet.http.HttpSessionAttributeListener

•javax.faces.event.PhaseListener

(8)狀態模式(State)

•java.util.Iterator

•javax.faces.lifecycle.LifeCycle#execute()

(9)策略模式(Strategy)

•java.util.Comparator#compare()

•javax.servlet.http.HttpServlet

•javax.servlet.Filter#doFilter()

(10)模板方法模式(Template Method)

•java.io.InputStream, java.io.OutputStream, java.io.Reader和java.io.Writer的所有非抽象方法

•java.util.AbstractList, java.util.AbstractSet和java.util.AbstractMap的所有非抽象方法

•javax.servlet.http.HttpServlet#doXXX()

(11)訪問者模式(Visitor)

•javax.lang.model.element.AnnotationValue和AnnotationValueVisitor

•javax.lang.model.element.Element和ElementVisitor

•javax.lang.model.type.TypeMirror和TypeVisitor

7. Java中23種設計模式,哪些是必須了解的

抽象工廠模式(Abstract Factory Pattern)
責任鏈模式(Chain of Responsibility Pattern)
代理模式(Proxy Pattern)
命令模式(Command Pattern)
觀察者模式(Observer Pattern)
我就會這幾個,看懂很容易,真的要明白其中的妙處就很難, 別貪多,搞明白一個就很有用的。

8. java常用的設計模式一共有多少種

1、正如上一位答主所言,java中存在23種面向對象的設計模式,分別是:
1)創建型模式,共五種:工廠方法模式、抽象工廠模式、單例模式、建造者模式、原型模式。
2)結構型模式,共七種:適配器模式、裝飾器模式、代理模式、外觀模式、橋接模式、組合模式、享元模式。
3)行為型模式,共十一種:策略模式、模板方法模式、觀察者模式、迭代子模式、責任鏈模式、命令模式、備忘錄模式、狀態模式、訪問者模式、中介者模式、解釋器模式。
2、他們遵從如下原則:
1)單一職責原則
2)里式替換原則
3)依賴倒置原則
4)介面隔離原則
5)迪米特法則
6)開閉原則
3、如果非要用幾個簡單的字來概括這繁雜的23種設計模式那就是「高內聚,低耦合」。
4、網路--23種設計模式,邊研究原理,邊敲代碼,其義自見。

9. java開發中都用到了哪些設計模式用在什麼場合

設計模式很多,但總的來講分為4大類,creationalpatterns,通常是隱藏對象的new進程,通過專門的類來具現對象。structuralpatterns,根據類的層次關系和介面來設計。behavioralpatterns根據對象間的通訊來設計J2EEpatterns.重視於表現層設計每類都有很多種。JAVA戰狼班

10. java中常用的設計模式有哪些

1.單例模式(有的書上說叫單態模式其實都一樣)
該模式主要目的是使內存中保持1個對象
2.工廠模式
該模式主要功能是統一提供實例對象的引用。看下面的例子:
public class Factory{
public ClassesDao getClassesDao(){
ClassesDao cd = new ClassesDaoImpl();
return cd;
}
}
interface ClassesDao{
public String getClassesName();
}
class ClassesDaoImpl implements ClassesDao {
public String getClassesName(){
System.out.println("A班");
}
}
class test
{
public static void main(String[] args){
Factory f = new Factory();
f.getClassesDao().getClassesName();
}
}
這個是最簡單的例子了,就是通過工廠方法通過介面獲取對象的引用
3.建造模式
該模式其實就是說,一個對象的組成可能有很多其他的對象一起組成的,比如說,一個對象的實現非常復雜,有很多的屬性,而這些屬性又是其他對象的引用,可能這些對象的引用又包括很多的對象引用。封裝這些復雜性,就可以使用建造模式。
4.門面模式
這個模式個人感覺像是Service層的一個翻版。比如Dao我們定義了很多持久化方法,我們通過Service層將Dao的原子方法組成業務邏輯,再通過方法向上層提供服務。門面模式道理其實是一樣的。
5.策略模式
這個模式是將行為的抽象,即當有幾個類有相似的方法,將其中通用的部分都提取出來,從而使擴展更容易。

閱讀全文

與中介者模式java相關的資料

熱點內容
體重小本app怎麼樣 瀏覽:776
編程語言需求 瀏覽:935
當兵體重怎麼個演算法 瀏覽:169
加密的電腦文件帶出去怎麼打開 瀏覽:849
死循環會在編譯的時候出錯嗎 瀏覽:986
c51單片機特殊寄存器的原理 瀏覽:578
閃耀永恆特利加密鑰 瀏覽:761
如何誇程序員 瀏覽:778
天津期貨python招聘 瀏覽:265
單片機機器語言寫的程序 瀏覽:552
韓國直播軟體app叫什麼名 瀏覽:918
軍營訓練不聽教官的命令 瀏覽:262
v開頭的音樂播放器是什麼APP 瀏覽:120
單片機是怎麼做出來的 瀏覽:317
博圖怎麼作為opc伺服器 瀏覽:102
編譯做題軟體 瀏覽:296
橋梁檢測pdf 瀏覽:688
化解壓力的一種方法 瀏覽:684
路由器和DSN伺服器有什麼區別 瀏覽:551
android伸縮控制項 瀏覽:861