想知道流行的设计是怎么处理有逻辑关联的结构体和常量。
比如会员,有会员等级,可以搞个member包,包里面搞 member.go。然后:
type MemberLevel byte
const (
LV1 MemberLevel = 1
LV2 MemberLevel = 2
//...
)
如果还有其他常量,通常也是类似的定义。假设再有一个会员区域,那搞个type MemberLevel type MemberDistrict byte
const (
D1 MemberDistrict = 1
D2 MemberDistrict = 2
//...
)
这样的困扰就是,如果有多组常量,在使用的时候就不那么容易区分,IDE会把所有东西列出来。
--------------------------------------------------
也这样:
member/
- level/level.go
- district/district.go
- member.go
这样做的好处是,使用的时候直接 level.LV1 即可,清晰明了。
但坏处是层级略深。
--------------------------------------------------
或者将结构体对象当成常量使用:
type MemberLevel struct {
Code byte
Name string
}
var LV1 MemberLevel = MemberLevel{1, "LV1"}
这样可以避免上面的问题,就是感觉不够简洁,不如 type MemberLevel byte 省事。
最后:member包应该是建议的吧,要是搞个类似Java那种通用的model/pojo之类的包 常量更乱了?
--
FROM 111.198.231.*