多個選擇條件,當其中一個條件必須滿足,其他條件任選其一,可以用策略模式么
有一個下載按鈕,只對一部分人可見。
后臺需要設計一個接口,告訴前端是否顯示按鈕
首先,有一個白名單控制,也就是登錄IP在白名單IP范圍內的,可以顯示按鈕
然后,判斷登錄人ID,是否滿足在某個小組A中,可以顯示
或者登錄人屬于某一機構B,也可以顯示
針對此功能,我想設計成三種策略,策略A(在白名單內),策略B(在小組A中),策略C(屬于機構B),這樣合適么
有一個下載按鈕,只對一部分人可見。
后臺需要設計一個接口,告訴前端是否顯示按鈕
首先,有一個白名單控制,也就是登錄IP在白名單IP范圍內的,可以顯示按鈕
然后,判斷登錄人ID,是否滿足在某個小組A中,可以顯示
或者登錄人屬于某一機構B,也可以顯示
針對此功能,我想設計成三種策略,策略A(在白名單內),策略B(在小組A中),策略C(屬于機構B),這樣合適么
2020-03-10
舉報
2020-03-15
策略模式主要是凸顯組合方式比繼承方式具有的優點,你分的三種策略應該是都要進行判斷的,不像視屏中講解的車子的輪胎只需要實現輪胎接口的一種輪胎實現類或是一種鴨子只需要實現飛行策略接口的一種飛行實現類。你的這種其實可以使用責任鏈模式,雖然與責任鏈關系不大,甚至最簡單的實現方式就用if()else(),三種情況用||連接。