今天突然来了一个灵感,记录一下。以前总觉得说不清楚,看看这种表达方式是否可以说清。
两个原则:依赖接口编程,不要依赖实现编程;最小获知原则。
面向对象最重要的是什么?抽象。那么在权限这方面我们要如何抽象呢?
最小获知原则
角色本身就是一种抽象出来的东东,用他来做隔离是最好不过了。因为客户里面是没有“角色”这个东东的。客户有岗位、部门、个人或者是工作组,但是就是没有角色。不是有句话吗,“什么?你不知道,那就好办了”。引用一下就是“什么?你这里没有,那就好办了”。
我们可以把角色说成是“部门”、“岗位”、“个人”,也可以说成是“岗位+个人”等各种说法,反正你那里没有角色,那我就怎么解释都行。最终解释权在我这里,咋说咋有理。
写代码的时候不用考虑客户的具体的权限方面的需求,只需要按照角色的规则编写,实现功能即可。
实现用户的各种权限需求也不需要去修改代码,也不用因此而影响代码如何去设计。只需要按照角色的规则来设置各个角色,即可实现客户的各种需求。
依赖“接口”编程
接口是广义的,不仅局限于interface。