命令模式是一種非常優(yōu)美的設(shè)計(jì)模式,命令定義了命令接收者的一系列操作,當(dāng)司令官發(fā)出命令的時(shí)候,命令接收者負(fù)責(zé)執(zhí)行,在這個(gè)過(guò)程中,司令官只負(fù)責(zé)執(zhí)行命令,至于命令的執(zhí)行情況通過(guò)返回值來(lái)控制,對(duì)命令的執(zhí)行過(guò)程是完全透明的。
1、定義命令接收者,命令接收者需要能夠?qū)崿F(xiàn)一些列的操作,這些操作與命令無(wú)關(guān),只是命令接收者的行為,也就是說(shuō),如果命令接收者只會(huì)吃飯睡覺(jué),你讓他打代碼他也干不來(lái)

2、命令接口,生成新的命令只需要實(shí)現(xiàn)這個(gè)接口,并且重寫(xiě)里面的方法

3、定義命令,命令一般為完成指定工作的一系列邏輯,因此才具有封裝成命令的價(jià)值,好比如把一個(gè)菜譜封裝成一個(gè)命令

4、司令官只負(fù)責(zé)發(fā)出相應(yīng)的命令,換言之就是讓他來(lái)實(shí)例化指定的命令

運(yùn)行代碼就會(huì)看到輸出相應(yīng)的結(jié)果了

這種設(shè)計(jì)模式的優(yōu)點(diǎn)就是我們可以把一系列的操作定義成一個(gè)命令,但是這個(gè)時(shí)候我們可能會(huì)有一個(gè)疑問(wèn)就是,覺(jué)得這種做法更加的麻煩,我們很多時(shí)候都會(huì)直接封裝一個(gè)方法,然后在方法里面放一系列的操作,比如做一道菜的邏輯。這就是為什么我們需要學(xué)習(xí)設(shè)計(jì)模式的原因,很多時(shí)候我們?nèi)绻覀冎皇菫榱藢?shí)現(xiàn)一個(gè)可行的業(yè)務(wù)邏輯,這跟設(shè)計(jì)模式是毫無(wú)關(guān)系的,我們學(xué)習(xí)設(shè)計(jì)模式是為了設(shè)計(jì)項(xiàng)目的架構(gòu),而不僅僅是為了實(shí)現(xiàn)功能邏輯