我即将在我的项目中实施策略设计模式,以根据用户的角色处理所有不同的行为。举个简单的例子,我有一个方法来获取系统中的所有订单,比如getOrders()
。
系统中大约有8个不同的角色,其中大多数角色的处理方式不同。例如,某些用户只能看到某些订单。有些人可以看到所有,或者有些人只能看到属于他们的人。之前,我曾经在“服务类”中使用一种方法,并有条件地检查那里。该示例只是一种方法,但它确实在整个系统中进行数据检索。所以我认为如果我将这些条件方法提取到一个单独的类中会更加清晰,可以根据它们的角色将其切换出来。所以每个类都有getOrders()
方法,我可以为每个角色定义它。
现在,这听起来像是一种可行的方法吗?在决定可能有更好的方法来解决这个问题之前,我应该注意哪些类的一般上限?
我也考虑过组合decorator
模式。不要相切,但我相信这将允许我让管理者角色通过装饰他们已经实施的内容来获得他们的下属所拥有的一切,然后在必要时添加。
另一方面,我正在使用Laravel,并打算通过绑定AppServiceProvider
中的具体实现来切换类。
任何输入都会很棒,谢谢!