多个选择条件,当其中一个条件必须满足,其他条件任选其一,可以用策略模式么

来源:1-1 策略模式简介

qq_宇宙浪子_1

2020-03-10 16:50

有一个下载按钮,只对一部分人可见。

后台需要设计一个接口,告诉前端是否显示按钮

首先,有一个白名单控制,也就是登录IP在白名单IP范围内的,可以显示按钮

然后,判断登录人ID,是否满足在某个小组A中,可以显示

或者登录人属于某一机构B,也可以显示

针对此功能,我想设计成三种策略,策略A(在白名单内),策略B(在小组A中),策略C(属于机构B),这样合适么


写回答 关注

1回答

  • 新的纪元
    2020-03-15 19:45:33

    策略模式主要是凸显组合方式比继承方式具有的优点,你分的三种策略应该是都要进行判断的,不像视屏中讲解的车子的轮胎只需要实现轮胎接口的一种轮胎实现类或是一种鸭子只需要实现飞行策略接口的一种飞行实现类。你的这种其实可以使用责任链模式,虽然与责任链关系不大,甚至最简单的实现方式就用if()else(),三种情况用||连接。

模式的秘密--策略模式

使用策略模式为你的应用提供弹性架构,还等什么呢,快来加入学习吧

32403 学习 · 64 问题

查看课程

相似问题