双拼、kotlin、依赖倒置

最近在练习用双拼打字。
双拼,即每个字都用两个键打出来。
比如,“中国”这两个字,用全拼打出来的话,需要按的键是:z、h、o、n、g、g、u、o。
如果是双拼(以小鹤双拼为例),就是v、s、g、o。
这相当于很多的快捷键,一个键可以代表多个字母:
v(zh)、s(ong)、g(g)、o(uo)。
按键少了,速度自然更快,字的匹配度也会变高。
只是这些快捷键的记忆需要练习。

这种将汉字分为 声母 + 韵母 的方式,让我想到了设计模式中的依赖倒置原则。
依赖倒置原则,即面向接口编程,模块之间的依赖关系通过接口发生。
这样设计下来,接口不依赖于实现类,实现类依赖接口。
因为人类认识自然界,是先看到细节,再从细节总结出抽象,所以抽象依赖于细节。
而在这样的模式中,是先约定了抽象,然后才有的实现细节,所以细节依赖于抽象,所以这个原则叫依赖倒置。

说完依赖倒置,再来看看双拼,在这里,声母是一个接口,韵母是一个接口,所有的汉字都是这两个接口的组合。
将汉字进行这样的分类后,打字的频率固定,可能刚开始速度并没有很明显的提升,但节奏感却突飞猛进。
林语堂说,一切艺术的问题,都是节奏的问题。
当节奏感变得明朗,打字似乎也变成一种艺术。

在编程中,我想大家最讨厌的,应该就是特殊情况,要处理特殊情况,就会出现成堆的 if/else,令人头大。
这时就可以运用依赖倒置原则,使用接口来代替 if/else,上层只处理接口,每种情况对应一个接口的实现。
比如 kotlin 中,相比于 Java,没有基础类型,所有的类型都是对象这个接口的实现。
没有 void,新增了 Unit,统一了函数的参数类型,所有的参数都是类型这个接口的实现。

程序是抽象的艺术,它需要找到自己的节奏。而合适的接口,往往就是合适的节奏。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章