国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

設(shè)計模式——狀態(tài)模式(State Pattern)

這篇具有很好參考價值的文章主要介紹了設(shè)計模式——狀態(tài)模式(State Pattern)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

一、狀態(tài)模式(State Pattern)

類型:行為型模式

功能:

對象的行為依賴于它的狀態(tài)(屬性),并且可以根據(jù)它的狀態(tài)改變而改變它的相關(guān)行為。

二、例子

1、菜鳥教程例子

1.1、定義狀態(tài)接口

public interface State {
   public void doAction(Context context);
}

1.2、定義開始狀態(tài)實現(xiàn)類

public class StartState implements State {
   public void doAction(Context context) {
      System.out.println("Player is in start state");
      context.setState(this); 
   }
   public String toString(){
      return "Start State";
   }
}

1.3、定義停止狀態(tài)實現(xiàn)類

public class StopState implements State {
 
   public void doAction(Context context) {
      System.out.println("Player is in stop state");
      context.setState(this); 
   }
 
   public String toString(){
      return "Stop State";
   }
}

1.4、創(chuàng)建 Context 類

public class Context {
   private State state;
 
   public Context(){
      state = null;
   }
 
   public void setState(State state){
      this.state = state;     
   }
 
   public State getState(){
      return state;
   }
}

1.5、使用 Context 來查看當狀態(tài) State 改變時的行為變化。

public class StatePatternDemo {
   public static void main(String[] args) {
      Context context = new Context();
 
      StartState startState = new StartState();
      startState.doAction(context);
 
      System.out.println(context.getState().toString());
 
      StopState stopState = new StopState();
      stopState.doAction(context);
 
      System.out.println(context.getState().toString());
   }
}

2、spring-statemachine-core源碼


三、其他設(shè)計模式

創(chuàng)建型模式
結(jié)構(gòu)型模式

  • 1、設(shè)計模式——裝飾器模式(Decorator Pattern)+ Spring相關(guān)源碼

行為型模式文章來源地址http://www.zghlxwxcb.cn/news/detail-739970.html

  • 1、設(shè)計模式——訪問者模式(Visitor Pattern)+ Spring相關(guān)源碼
  • 2、設(shè)計模式——中介者模式(Mediator Pattern)+ JDK相關(guān)源碼
  • 3、設(shè)計模式——策略模式(Strategy Pattern)+ Spring相關(guān)源碼
  • 4、設(shè)計模式——狀態(tài)模式(State Pattern)
  • 5、設(shè)計模式——觀察者模式(Observer Pattern)+ Spring相關(guān)源碼

到了這里,關(guān)于設(shè)計模式——狀態(tài)模式(State Pattern)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務器費用

相關(guān)文章

  • 3.8設(shè)計模式——State 狀態(tài)模式(行為型)

    3.8設(shè)計模式——State 狀態(tài)模式(行為型)

    允許一個對象在其內(nèi)部狀態(tài)改變時改變它的行為。對象看起來似乎修改了它的類。 Context(上下文)定義客戶感興趣的接口;維護一個ConcreteState子類的實例,這個實例定義當前狀態(tài)。 State(狀態(tài))定義一個接口以封裝與Context的一個特定狀態(tài)相關(guān)的行為。 ConcreteState(具體狀態(tài)

    2024年04月26日
    瀏覽(27)
  • 設(shè)計模式之狀態(tài)模式(State)的C++實現(xiàn)

    設(shè)計模式之狀態(tài)模式(State)的C++實現(xiàn)

    在組件功能開發(fā)過程中,某些對象的狀態(tài)經(jīng)常面臨變化,不同的狀態(tài),其對象的操作行為不同。比如根據(jù)狀態(tài)寫的if else條件情況,且這種條件變化是經(jīng)常變化的,這樣的代碼不易維護。可以使用狀態(tài)模式解決這類問題。狀態(tài)模式是將狀態(tài)值抽象成一個基類,將不同狀態(tài)下的操

    2024年02月12日
    瀏覽(28)
  • C++設(shè)計模式_18_State 狀態(tài)模式

    State和Memento被歸為“狀態(tài)變化”模式。 在組件構(gòu)建過程中,某些對象的狀態(tài)經(jīng)常面臨變化,如何對這些變化進行有效的管理?同時又維持高層模塊的穩(wěn)定?“狀態(tài)變化”模式為這一問題提供了一種解決方案。 State Memento

    2024年02月06日
    瀏覽(18)
  • 【設(shè)計模式——學習筆記】23種設(shè)計模式——狀態(tài)模式State(原理講解+應用場景介紹+案例介紹+Java代碼實現(xiàn))

    【設(shè)計模式——學習筆記】23種設(shè)計模式——狀態(tài)模式State(原理講解+應用場景介紹+案例介紹+Java代碼實現(xiàn))

    請編寫程序完成APP抽獎活動具體要求如下: 假如每參加一次這個活動要扣除用戶50積分,中獎概率是10% 獎品數(shù)量固定,抽完就不能抽獎 活動有四個狀態(tài): 可以抽獎、不能抽獎、發(fā)放獎品和獎品領(lǐng)完,活動的四個狀態(tài)轉(zhuǎn)換關(guān)系圖如下 一開始的狀態(tài)為“不能抽獎”,當扣除50積分

    2024年02月12日
    瀏覽(29)
  • 《游戲編程模式》學習筆記(七)狀態(tài)模式 State Pattern

    《游戲編程模式》學習筆記(七)狀態(tài)模式 State Pattern

    允許對象在當內(nèi)部狀態(tài)改變時改變其行為,就好像此對象改變了自己的類一樣。 在書的示例里要求你寫一個人物控制器,實現(xiàn)跳躍功能 直覺上來說,我們代碼會這么寫: 可是這么寫不對,因為人物本身應該只能跳一次,這樣寫的話人物就可以無限按B實現(xiàn)跳躍了。我們加一個

    2024年02月11日
    瀏覽(20)
  • 設(shè)計模式——原型模式(Prototype Pattern)

    設(shè)計模式——原型模式(Prototype Pattern)

    概述 ?????? 原型模式(Prototype? Pattern):使用原型實例指定創(chuàng)建對象的種類,并且通過拷貝這些原型創(chuàng)建新的對象。原型模式是一種對象創(chuàng)建型模式。原型模式的工作原理很簡單:將一個原型對象傳給那個要發(fā)動創(chuàng)建的對象,這個要發(fā)動創(chuàng)建的對象通過請求原型對象拷貝自

    2024年01月16日
    瀏覽(21)
  • 設(shè)計模式-組合模式(Composite Pattern)

    設(shè)計模式-組合模式(Composite Pattern)

    組合模式是一種結(jié)構(gòu)型設(shè)計模式,它允許將對象組合成樹狀的層次結(jié)構(gòu),用來表示“整體-部分”的關(guān)系。 原理圖 抽象角色(Component) :這是組合模式的核心,它定義了樹葉和樹枝構(gòu)件的公共接口,并可能提供一些默認行為。在透明式的組合模式中,它還聲明了訪問和管理子

    2024年04月12日
    瀏覽(25)
  • 設(shè)計模式|原型模式(Prototype Pattern)

    原型模式(Prototype Pattern)是一種創(chuàng)建型設(shè)計模式,其核心思想是通過復制現(xiàn)有對象來創(chuàng)建新對象,而無需顯式地指定它們的類。這種模式通常用于當對象的創(chuàng)建成本較高,或者對象初始化過程比較復雜時。 原型模式的主要角色包括原型接口(Prototype Interface)、具體原型類(

    2024年04月23日
    瀏覽(24)
  • 設(shè)計模式--工廠模式(Factory Pattern)

    設(shè)計模式--工廠模式(Factory Pattern)

    工廠模式(Factory Pattern)是一種創(chuàng)建型設(shè)計模式,它提供了一種創(chuàng)建對象的接口,但是將對象的實例化過程推遲到子類中。工廠模式允許通過調(diào)用一個共同的接口方法來創(chuàng)建不同類型的對象,而無需暴露對象的實例化邏輯。 工廠模式的主要目標是解耦對象的創(chuàng)建和使用,以及

    2024年02月10日
    瀏覽(31)
  • 設(shè)計模式--代理模式(Proxy Pattern)

    設(shè)計模式--代理模式(Proxy Pattern)

    代理模式(Proxy Pattern)是一種結(jié)構(gòu)型設(shè)計模式,它允許一個對象(代理)充當另一個對象(真實對象)的接口,以控制對該對象的訪問。代理對象可以在訪問真實對象之前或之后執(zhí)行一些操作,從而增強或限制真實對象的行為。 代理模式的主要目的是為了控制訪問,而不是

    2024年02月10日
    瀏覽(22)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包