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

設計模式——命令模式(Command Pattern)+ Spring相關源碼

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

一、命令模式定義

類型: 行為型模式
目的: 將一個請求封裝成一個對象,從而使您可以用不同的請求對客戶進行參數(shù)化。

二、例子

2.1 菜鳥教程例子

2.1.1 定義命令類接口

public interface Order {
   void execute();
}

2.1.2 定義命令執(zhí)行者

import java.util.ArrayList;
import java.util.List;
 
public class Broker {
   private List<Order> orderList = new ArrayList<Order>(); 
 
   public void takeOrder(Order order){
      orderList.add(order);      
   }
 
   public void placeOrders(){
      for (Order order : orderList) {
         order.execute();
      }
      orderList.clear();
   }
}

2.1.3 被處理對象Stock。

菜鳥教程定義被處理的對象是Stock。

public class Stock {
   
   private String name = "ABC";
   private int quantity = 10;
 
   public void buy(){
      System.out.println("Stock [ Name: "+name+", 
         Quantity: " + quantity +" ] bought");
   }
   public void sell(){
      System.out.println("Stock [ Name: "+name+", 
         Quantity: " + quantity +" ] sold");
   }
}

2.1.4 封裝處理Stock的命令

public class BuyStock implements Order {
   private Stock abcStock;
 
   public BuyStock(Stock abcStock){
      this.abcStock = abcStock;
   }
 
   public void execute() {
      abcStock.buy();
   }
}
public class SellStock implements Order {
   private Stock abcStock;
 
   public SellStock(Stock abcStock){
      this.abcStock = abcStock;
   }
 
   public void execute() {
      abcStock.sell();
   }
}

2.2 JDK源碼——Runnable

雖然 Runnable 接口本身并不是一個命令模式的實現(xiàn),但結合Thread和自定義的Runnable 實現(xiàn)類可以認為它運用了命令模式。

2.2.1 命令接口

public interface Runnable {
    public abstract void run();
}

2.2.2 命令處理者


public class Thread implements Runnable {
    private Runnable target;
    
    public synchronized void start() {
        if (threadStatus != 0)
            throw new IllegalThreadStateException();
?
        group.add(this);
?
        boolean started = false;
        try {
            start0();
            started = true;
        } finally {
            try {
                if (!started) {
                    group.threadStartFailed(this);
                }
            } catch (Throwable ignore) {
            }
        }
    }
    
    private native void start0();
}

2.2.3 命令實現(xiàn)類

public class OrderThread {
    public void run(){
	   	 //todo
    }
}

2.3 SpringMVC——Controller

個人認為Controller也是運用了命令模式。

2.3.1 請求對象 handler

2.3.2 請求執(zhí)行者 HandlerAdapter

HandlerAdapter光看名字就知道運用了適配模式,我們就看handle方法部分就好了。

public class SimpleControllerHandlerAdapter implements HandlerAdapter {
    public SimpleControllerHandlerAdapter() {
    }

    public boolean supports(Object handler) {
        return handler instanceof Controller;
    }

    @Nullable
    public ModelAndView handle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        return ((Controller)handler).handleRequest(request, response);
    }

    public long getLastModified(HttpServletRequest request, Object handler) {
        return handler instanceof LastModified ? ((LastModified)handler).getLastModified(request) : -1L;
    }
}


三、其他設計模式

創(chuàng)建型模式
結構型模式

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

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

  • 1、設計模式——訪問者模式(Visitor Pattern)+ Spring相關源碼
  • 2、設計模式——中介者模式(Mediator Pattern)+ JDK相關源碼
  • 3、設計模式——策略模式(Strategy Pattern)+ Spring相關源碼
  • 4、設計模式——狀態(tài)模式(State Pattern)
  • 5、設計模式——命令模式(Command Pattern)+ Spring相關源碼
  • 6、設計模式——觀察者模式(Observer Pattern)+ Spring相關源碼
  • 7、設計模式——備忘錄模式(Memento Pattern)
  • 8、設計模式——模板方法模式(Template Pattern)+ Spring相關源碼
  • 9、設計模式——迭代器模式(Iterator Pattern)+ Spring相關源碼
  • 10、設計模式——責任鏈模式(Chain of Responsibility Pattern)+ Spring相關源碼
  • 11、設計模式——解釋器模式(Interpreter Pattern)+ Spring相關源碼

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

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

領支付寶紅包贊助服務器費用

相關文章

  • 23種設計模式之命令模式(Command Pattern)

    23種設計模式之命令模式(Command Pattern)

    前言:大家好,我是小威,24屆畢業(yè)生,在一家滿意的公司實習。本篇文章將23種設計模式中的命令模式,此篇文章為一天學習一個設計模式系列文章,后面會分享其他模式知識。 如果文章有什么需要改進的地方還請大佬不吝賜教 ????。 小威在此先感謝各位大佬啦~~????

    2024年02月06日
    瀏覽(25)
  • C#設計模式(15)命令模式(Command Pattern)

    命令模式(Command Pattern) 命令模式是一種數(shù)據(jù)驅動的設計模式,屬于行為型模式類別。請求被包裝在一個對象中作為命令,并傳遞給調用對象。調用對象尋找可以處理該命令的合適對象,并將命令傳遞給相應的對象,該對象執(zhí)行命令。 實現(xiàn) 步驟 1 :創(chuàng)建一個命令接口。 步驟

    2024年02月14日
    瀏覽(24)
  • 設計模式——迭代器模式(Iterator Pattern)+ Spring相關源碼

    類型: 行為型模式 目的: 用于順序訪問集合對象的元素,使用者不需要知道集合對象的底層表示。 2.1.1 定義迭代器接口 2.1.2 定義迭代對象接口——用于返回一個迭代器 2.1.3 實現(xiàn) 迭代對象 和 迭代器 2.1.4 使用 迭代器CompositeIterator 創(chuàng)建型模式 結構型模式 1、設計模式——裝

    2024年02月05日
    瀏覽(29)
  • 設計模式——裝飾器模式(Decorator Pattern)+ Spring相關源碼

    別名:包裝模式(Wrapper Pattern) 類型:結構型模式。 目的:指在不改變現(xiàn)有對象結構的情況下,動態(tài)地給該對象增加一些職責額外功能。 給對象添加新功能時,并不是在對象類中直接添加,而是在裝飾器類中添加。 在裝飾類中添加新功能,你可以增強原先對象的方法,也可

    2024年02月06日
    瀏覽(19)
  • 設計模式——觀察者模式(Observer Pattern)+ Spring相關源碼

    類型:行為型模式 目的:當一個對象的狀態(tài)發(fā)生改變時,其所有依賴者(觀察者)都會收到通知并自動更新。 2.1.1 定義觀察者 2.1.2 定義被觀察對象 2.1.3 使用 2.2.1 觀察者接口Observer 2.2.1 被觀察者對象Observable 2.3.1 觀察者 2.3.2 被觀察者 創(chuàng)建型模式 結構型模式 1、設計模式——

    2024年02月06日
    瀏覽(23)
  • 設計模式——責任鏈模式(Chain of Responsibility Pattern)+ Spring相關源碼

    類型: 行為型模式 每個接收者都包含對另一個接收者的引用。如果一個對象不能處理該請求,那么它會把相同的請求傳給下一個接收者,依此類推。 目的: 職責鏈上的處理者負責處理請求,客戶只需要將請求發(fā)送到職責鏈上即可,無須關心請求的處理細節(jié)和請求的傳遞,所

    2024年02月05日
    瀏覽(23)
  • 設計模式-命令模式(Command)

    設計模式-命令模式(Command)

    命令模式(Command Pattern)是一種行為型設計模式,也被稱為動作模式或事務模式。它的核心思想是將一個請求封裝成一個對象,從而使你可以用不同的請求對客戶進行參數(shù)化。對請求排隊或記錄,以及支持可撤銷的操作。命令模式的主要目的是將發(fā)出請求的對象和執(zhí)行請求的

    2024年04月27日
    瀏覽(33)
  • 說說設計模式~命令模式(command)

    回到目錄 命令模式(Command Pattern)是一種行為型設計模式,它將請求封裝成一個對象,從而允許我們根據(jù)不同的請求將客戶端參數(shù)化,并且能夠將請求排隊或記錄請求日志、支持撤銷操作等。該模式使得請求的發(fā)送者和接收者解耦。 使用命令模式的主要目的是將方法調用封

    2024年02月11日
    瀏覽(24)
  • 設計模式之命令模式(Command)的C++實現(xiàn)

    設計模式之命令模式(Command)的C++實現(xiàn)

    在軟件開發(fā)過程中,“行為請求者”和“行為實現(xiàn)者”通常呈現(xiàn)一種“緊耦合”,如果行為的實現(xiàn)經(jīng)常變化,則不利于代碼的維護。命令模式可以將行為的請求者和行為的實現(xiàn)者進行解耦。具體流程是將行為請求者封裝成一個對象,將行為實現(xiàn)者抽象成一個類。 有2兩種不同

    2024年02月10日
    瀏覽(25)
  • C++設計模式_23_Command 命令模式

    我們將Command 和Visitor歸為“行為變化”模式。 Command 命令模式與函數(shù)對象十分類似,但在C++主流框架中,函數(shù)對象(function object)應用的更為廣泛。 在組件的構建過程中,組件行為的變化經(jīng)常導致組件本身劇烈的變化。“行為變化”模式將組件的行為和組件本身進行解耦,從

    2024年02月06日
    瀏覽(16)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領取紅包

二維碼2

領紅包