設計模式 四 行為型模式

2022-09-18 05:12:29 字數 3010 閱讀 4680

1、命令模式

是一種資料驅動的設計模式,屬於行為型模式。請求以命令的形式包裹在物件中,並傳給呼叫物件。呼叫物件尋找可以處理該明林的適合的物件,並把該命令傳給相應的物件,該物件執行命令。

建立乙個命令介面

public inte***ce order
建立乙個請求類

public class stock 

public void

sell()

}

建立介面的實現實體類

public class buystock implements order 

@override

public void

execute()

}

public class sellstock implements order 

@override

public void

execute()

}

建立命令呼叫類

public class broker 

public void

placeorder()

orderlist.clear();

}}

使用命令呼叫類來接受並執行命令

public class main 

}

2、中介者模式

用來降低多個類和物件之間的通訊複雜性,處理多個類之間的通訊,支援松耦合。

建立中介類

public class chatroom 

}

建立實體類

public class user 

public string getname()

public void

setname(string name)

public void

showmessage(string message)

}

使用user物件來顯示他們之間的通訊

public class main 

}

3、觀察者模式

當物件間存在一對多關係時,使用觀察者模式,當乙個物件被改變時,所有依賴於他的物件都得到通知並被自動更新,該種模式屬於行為模式。

建立subject類

public class subject 

public void

setstate(int state)

public void

notifyallobservers()

}public void

attach(observer observer)

}

建立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 main 

}

4、狀態模式

在狀態模式中,類的行為是基於它的狀態改變的,允許物件在內部狀態發生改變時改變他的行為。

建立介面及其實現類

public inte***ce state
public class startstate implements state

@override

public string tostring()

}

public class stopstate  implements state

@override

public string tostring()

}

建立context類

public class context 

public state getstate()

public void

setstate(state state)

}

使用context類檢視當狀態state改變時的行為變化

public class main 

}

5、策略模式

乙個類的行為或演算法可以在執行時被更改。這種型別的設計模式屬於行為模式。

建立乙個介面及其實現類

public inte***ce strategy
public class operationadd implements strategy

}

public class operationsubstract implements strategy 

}

public class operationmultiply implements strategy 

}

建立context物件

public class context 

public int

executestrategy(int num1, int num2)

}

使用context來檢視當它改變策略strategy時的行為變化

public class main 

}

6 0行為型模式

行為型模式用於描述程式在執行時複雜的流程控制,即描述多個類或物件之間怎樣相互協作共同完成單個物件都無法單獨完成的任務,它涉及演算法與物件間職責的分配。行為型模式分為類行為模式和物件行為模式,前者採用繼承機制來在類間分派行為,後者採用組合或聚合在物件間分配行為。由於組合關係或聚合關係比繼承關係耦合度低...

設計模式21 行為型模式之狀態模式

定義 狀態模式 state pattern 允許乙個物件在其內部狀態改變時改變它的行為。物件看起來似乎修改了它的類。型別 物件行為型模式 概述 乙個物件有乙個狀態,那麼每乙個狀態又對應一些相應的行為。如果這個物件有很多狀態,那麼就要對應非常多的行為。那麼對這些狀態的判斷以及根據狀態完成相應的行為,會...

設計模式 13 行為型模式之 模板模式

模板,就是方案的固定格式,一般都要遵循這麼個步驟去幹。比如你請假,你需要 填寫請假條,領導1簽字 領導2簽字,這麼三個步驟。這個就叫模板,就是這麼乙個固定的流程。具體你請假條寫的啥,這個不關心。在模板模式 template pattern 中,乙個抽象類公開定義了執行它的方法的方式 模板。它的子類可...