定義:(定義一組 算法,將每個算法都封裝起來,並且使它們之間可以互換。
圖一
圖二
命令模式的區別
相同:
見命令模式中。
不同:
策略模式意義在於,每個策略之間策略之間可以隨意互換。
而命令模式,每個command與Invoker都是一種綁定關係,一對一的關係。從程序上看,是可以隨意互換的,但是在思路上,他們是一種綁定的關係。例如:播放器中兩個按鈕,播放按鈕和暫停按鈕,分別綁定PlayCommand和PauseCommand。代碼上看是可以互換,但是程序邏輯上不可以。
定義:(定義一組 算法,將每個算法都封裝起來,並且使它們之間可以互換。
圖一
圖二
命令模式的區別
相同:
見命令模式中。
不同:
策略模式意義在於,每個策略之間策略之間可以隨意互換。
而命令模式,每個command與Invoker都是一種綁定關係,一對一的關係。從程序上看,是可以隨意互換的,但是在思路上,他們是一種綁定的關係。例如:播放器中兩個按鈕,播放按鈕和暫停按鈕,分別綁定PlayCommand和PauseCommand。代碼上看是可以互換,但是程序邏輯上不可以。
需求:無限變化 定義:將複雜對象(多種形態的對象,並且形態還可以增加)的構建和它的表現分離,使得同樣的構建過程,構建出不同的表現。 需求出現了改變,代碼必然變化,儘量讓這種變化出現在高層模塊。
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>設計模式1</title> </head> <body>
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>JavaScript設計模式3</title> </head>
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>JavaScript設計模式</title> </head>
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>設計模式4</title> </head> <body>