请教一下装饰器的逻辑

2019-01-07 16:51:21 +08:00
 coolair
拿用户举例:
@shop_is_existed # 店铺存在,不存在跳转到店铺不存在页面。
@user_is_existed # 用户存在(该用户是上述店铺下的用户),不存在则 403。

这两个装饰器,在 @user_is_existed 这个装饰器中需要在判断店铺是否存在吗?如果判断的话,就相当于 @user_is_existed 里面的部分功能和 @shop_is_existed 重复了。如果不判断的话,在使用上就得注意,@shop_is_existed 不能漏掉,并且需要在 @user_is_existed 前调用。

哪种写法更合适?
658 次点击
所在节点    问与答
1 条回复
Vegetable
2019-01-07 17:01:50 +08:00
如果说不存在店铺,就肯定不存在用户
那么就必须在 user 装饰器里检查店铺是否存在

否则使用过程中出现了遗忘的情况,会出现难以预料的问题

功能出现重叠很正常啊,仔细想一下,这不就是继承吗?
user 继承了 shop 的功能,在此基础上检查是否存在用户.

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/524696

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX