《TypeScript图形渲染实战:2D架构设计与实现》 —2.2 IDoom3Token与IDoom3Tokenizer

举报
华章计算机 发表于 2019/12/11 12:21:03 2019/12/11
【摘要】 本节书摘来自华章计算机《TypeScript图形渲染实战:2D架构设计与实现》 一书中第2章,第2.2.1节,作者是步磊峰。

2.2  IDoom3Token与IDoom3Tokenizer接口的实现

  在上一节中声明了IDoom3Token接口和IDoom3Tokenizer接口,本节来看一下这两个接口的具体实现过程,从中会发现接口和实现类之间的微妙关系,即接口规定了要做什么,接口的实现类则规定了应该怎么做。

2.2.1  Doom3Token类成员变量的声明

  首先来看一下IDoom3Token接口的实现类,在TypeScript中使用implements关键字来实现一个接口,代码如下:

 

class Doom3Token implements IDoom3Token {

    private _type : ETokenType ;                                                                                                                     // 标识当前Token的类型 : NONE / STRING / NUMBER

    private _charArr : string [ ] = [ ] ;                                 // 字符串数组

    private _val : number ;   // 如果当前的Token类型是NUMBER,则会设置该数值,

                                                 如果是字符串类型,就忽略该变量

}

 

  上面的代码很简单,但是也有几个值得关注的地方,如下所述。

  (1)在TypeScript / JavaScript中,并没有char这个数据类型,都是使用string类型来表示单个字符,在变量_charArr中存放的实际是char(一个字符)类型的数据。

  (2)在TypeScript中,有两种声明和实列化(内存分配)类型数组的方式,第一种就是上面所使用的方式,另外一种可以使用_charArray : Array < string> = new Array < string > ( )的方式,笔者更喜欢第一种方式来声明类型数组变量,简洁明了。

  (3)在声明IDoom3Token接口时使用了export关键字来导出接口,但是在实现类Doom3Token中并没有使用export关键字。这是接口的一个很棒的特性:只暴露(export)接口(interface),而隐藏类(class)的实现,第三方调用时,只关心接口是怎么使用的,不需要知道具体类是怎么实现的。

  (4)TypeScript支持public、protected和private这3个级别的访问修饰符,如果没有在成员变量前声明访问修饰符,在默认情况下,被定义为public级别。3个访问修饰符的区别如下:

* 被public访问修饰符修饰的成员变量或方法能够被所有类访问。

* 被protected访问修饰符修饰的成员变量或方法既能被定义它的类访问,也能被继承它的子类访问。

* 被private访问修饰符修饰的成员变量或方法只能被定义它的类访问,也就是说不能在声明它的类的外部访问。


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。