【每天一个java设计模式(十七)】 - 状态模式
生活随笔
收集整理的這篇文章主要介紹了
【每天一个java设计模式(十七)】 - 状态模式
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在狀態模式中,類的行為是基于它的狀態改變的,允許對象在內部狀態發生改變時改變它的行為,對象看起來好像修改了它的類。這種類型的設計模式屬于行為型模式。
在狀態模式中,我們創建表示各種狀態的對象和一個行為隨著狀態對象改變而改變的 context 對象。
狀態模式的實現:
1. 創建狀態的抽象類
//抽象狀態類 public abstract class State {public abstract void handle(Context context); }2. 創建抽象類的兩個具體狀態
//狀態A public class Astate extends State {@Overridepublic void handle(Context context) {System.out.println("當前狀態為A,A狀態執行結束,改變狀態為B");context.setState(new Bstate());} } //狀態B public class Bstate extends State {@Overridepublic void handle(Context context) {System.out.println("當前狀態為B,B狀態執行結束,改變狀態為A");context.setState(new Astate());} }3. 創建Context
public class Context {private State state;public Context() {this.state = new Astate();}public void setState(State state) {this.state = state;}public State getState() {return (state);}public void handle() {state.handle(this);} }4. 狀態模式測試
public class StateMain {public static void main(String[] args) {Context context = new Context();context.handle();context.handle();context.handle();context.handle();context.handle();} }- 什么是設計模式:【每天一個java設計模式(零)】 - 設計模式基本概念及七大設計原則
創建型模式
- 工廠模式:【每天一個java設計模式(一)】 - 工廠模式
- 抽象工廠模式: 【每天一個java設計模式(二)】 - 抽象工廠模式
- 單例模式:【每天一個java設計模式(三)】 - 單例模式
- 原型模式:【每天一個java設計模式(四)】 - 原型模式
- 建造者模式: 【每天一個java設計模式(五)】 - 建造者模式
結構型模型
- 適配器模式 : 【每天一個java設計模式(六)】 - 適配器模式
- 代理模式: 【每天一個java設計模式(七)】 - 代理模式模式
- 橋接模式:【每天一個java設計模式(八)】 - 橋接模式
- 裝飾器模式:【每天一個java設計模式(九)】 - 裝飾器模式
- 外觀模式:【每天一個java設計模式(十)】 - 外觀模式
- 享元模式:【每天一個java設計模式(十一)】 - 享元模式
- 組合模式:【每天一個java設計模式(十二)】 - 組合模式
行為型模式
- 模板模式:【每天一個java設計模式(十三)】 - 模板模式
- 解釋器模式:【每天一個java設計模式(十四)】 - 解釋器模式
- 命令模式:【每天一個java設計模式(十五)】 - 命令模式
- 策略模式:【每天一個java設計模式(十六)】 - 策略模式
下一節:
觀察者模式:【每天一個java設計模式(十八)】 - 觀察者模式
總結
以上是生活随笔為你收集整理的【每天一个java设计模式(十七)】 - 状态模式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 蓝桥杯--数字排列的Python解法
- 下一篇: VS2022 .NET 特性重复