内容简介:比如,要我们设计一个 User。那很简单,典型的 class 嘛,按照 OOP 的套路走就行了,于是:这样的设计,不能说特别糟糕,也不能说特别完美 。实际上,我们可以让这个 class 更加清晰直观一点。实际中的 class,需求其实还是挺多的,比如
比如,要我们设计一个 User。那很简单,典型的 class 嘛,按照 OOP 的套路走就行了,于是:
struct User{ 1: string id; 2: string name; 3: i64 age; 4: string address; ... } 复制代码
这样的设计,不能说特别糟糕,也不能说特别完美 。实际上,我们可以让这个 class 更加清晰直观一点。
实际开发中的思考
实际中的 class,需求其实还是挺多的,比如
- 属性也许会很多(比如十几项属性?)
- 需要某个属性,有默认值
- 需要某个属性,可设置可不设置
- 需要某个属性,强制设置,并提供很直观的提示
- 等等等等
好的语言设计者,应该会考虑到这些。幸好,作为典型实用派的Thrift,考虑到了这些。
充分利用好 Thrift 提供的特性
在 Thrift 的官方文档中,说明这些特性。见: thrift.apache.org/docs/idl#fi… 。无非是从语法层面上,提供一些关键词,让读代码的人,维护代码的人,能够有个清晰的认知。
比如,上面我们的 User,大概可以变成这样:
struct User{ 1: required string id; // 需要明确指定ID 2: required string name; // 需要明确指定name 3: optional i64 age; // 年龄, 可填可不填 4: optional string address; 5: optional bool isAdmin=false; // 默认属性, 需要设置时,就去设置 ... } 复制代码
这样,哪些应该有,哪些可以没有,都是一目了然的。
enum 的设计
由于Thrift 并未为 enum 提供很多功能,所以 enum 写起来就很简单了,注意命名风格即可:
enum GenderEnum { MALE = 1, FEMALE = 2, } 复制代码
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
JS 压缩/解压工具
在线压缩/解压 JS 代码
HSV CMYK 转换工具
HSV CMYK互换工具