輕松掌握J(rèn)ava命令模式
定義:請(qǐng)求以命令的形式包裹在對(duì)象中,并傳給調(diào)用對(duì)象。調(diào)用對(duì)象尋找可以處理該命令的合適的對(duì)象,并把該命令傳給相應(yīng)的對(duì)象,該對(duì)象執(zhí)行命令。
特點(diǎn):
1、降低了系統(tǒng)耦合度。
2、新的命令可以很容易添加到系統(tǒng)中去。
企業(yè)級(jí)開發(fā)和常用框架中的應(yīng)用:事務(wù),struts的action控制器
實(shí)例:
public class Demo {
public static void main(String[] args) {
Reicever reicever = new Reicever();
Command command = new ActualCommand(reicever);
Invoker invoker = new Invoker();
invoker.addCommand(command);
invoker.call();
}
}
/**
* 命令真正的執(zhí)行者,對(duì)于不同的命令可能有不同的命令執(zhí)行者
*/
class Reicever{
public void action(){
System.out.println("Reicever.action()");
}
}
/**
* 命令接口,也為了后面統(tǒng)一后面的命令
*/
interface Command{
public void excute();
}
/**
* 實(shí)際命令對(duì)象,可能有很多不同的命令對(duì)象
*/
class ActualCommand implements Command{
private Reicever reicever;
public ActualCommand(Reicever reicever) {
this.reicever = reicever;
}
public void excute() {
reicever.action();
}
}
/**
* 命令發(fā)出者
*/
class Invoker{
private List<Command> commands = new ArrayList<>();
public void addCommand(Command command){
commands.add(command);
}
public void call(){
for(Command c:commands){
c.excute();
}
}
}
命令模式單獨(dú)是用的情況很少,一般都是和備忘錄模式組合是用。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Java面向接口編程之簡(jiǎn)單工廠模式示例
- 淺談Java面向接口編程
- 解析Java設(shè)計(jì)模式編程中命令模式的使用
- Java設(shè)計(jì)模式之命令模式(Command模式)介紹
- 詳解Java設(shè)計(jì)模式編程中命令模式的項(xiàng)目結(jié)構(gòu)實(shí)現(xiàn)
- 23種設(shè)計(jì)模式(17)java命令模式
- 深入理解java三種工廠模式
- 代理模式之Java動(dòng)態(tài)代理實(shí)現(xiàn)方法
- Java代碼重構(gòu)的幾種模式詳解
- Java中的觀察者模式實(shí)例講解
- Java面向接口編程之命令模式實(shí)例詳解
相關(guān)文章
SpringBoot解決@Component無(wú)法注入其他Bean的問(wèn)題
這篇文章主要介紹了SpringBoot解決@Component無(wú)法注入其他Bean的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-08-08
Spring Boot 2.x 把 Guava 干掉了選擇本地緩存之王 Caffeine(推薦)
這篇文章主要介紹了Spring Boot 2.x 把 Guava 干掉了選擇本地緩存之王 Caffeine,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-01-01
java模擬post請(qǐng)求發(fā)送json的例子
本篇文章主要介紹了java模擬post請(qǐng)求發(fā)送json的例子,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-08-08
詳解springcloud之服務(wù)注冊(cè)與發(fā)現(xiàn)
本次分享的是關(guān)于springcloud服務(wù)注冊(cè)與發(fā)現(xiàn)的內(nèi)容,將通過(guò)分別搭建服務(wù)中心,服務(wù)注冊(cè),服務(wù)發(fā)現(xiàn)來(lái)說(shuō)明,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2018-06-06
Java多線程生產(chǎn)者消費(fèi)者模式實(shí)現(xiàn)過(guò)程解析
這篇文章主要介紹了Java多線程生產(chǎn)者消費(fèi)者模式實(shí)現(xiàn)過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-03-03
基于SpringBoot項(xiàng)目遇到的坑--Date入?yún)?wèn)題
這篇文章主要介紹了SpringBoot項(xiàng)目遇到的坑--Date入?yún)?wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-10-10

