>1000是A模块的权限,1100代表是管理员,等,1200是B模块的权限
这个很显然是以数学方式来处理业务,这个方式可行,但是拓展性和可读性很差,我们不使用汇编语言就是为了可读性和维护性,如果我们使用高级语言加数学符号,或者使用脚本字符串如存储过程,大量SQL等,来表达业务时,这和全部回到汇编有什么进步呢?只不过百步和五十步的区别而已。
所以,以OO概念来处理权限是为了维护性和拓展性,我们不是探讨能不能实现功能的问题,而是探讨更好地实现功能的问题。
基于角色的权限体系已经得到广发应用,引入Role角色对象,可以解耦用户和权限之间直接联系。
从我的实践来看,凡是你可以用数字来表示的,都可以用对象来替代,比如状态数字,我们经常使用123数字来表示状态,这是数据库记录状态的方式,在我们OO语言中就不能这么低级思考了,当然,最后为了持久状态,你是要转为123给数据库,但是不代表我们应用程序设计中就要以123数字来思考。