什么是标准和实现
在 CS (计算机科学) 领域中,你应该动不动就能听到类似于下面的句子:
-
OpenPGP.JS 是 OpenPGP 的 JavaScript 实现
-
hotchocolate 是 GraphQL 的 C#/.NET 实现
标准不是一个具体的东西,它描述了一个东西的属性,特征,行为等等东西
按照这个标准所制造出来的东西称之为 标准 X
的实现
例如一家叫做 Soony 的公司起草了一个叫做 Soony 电子狗程序的规范:
-
它可以让电子狗叫
-
它可以让电子狗跑
-
它可以让电子狗有 50% 的可能接住主人扔出去的球
-
当它无聊的时候会整天吠叫 (仅愚人节启动该功能)
接下来有三家公司分别是 Epsilon, Kappa, Sigma 都想编写电子狗程序,出现了以下三种情况
Epsilon 公司的电子狗程序:
-
在电子狗电量少的时候吠叫
-
在电子狗无聊的时候在附近周围跑跑
-
电子狗拥有先进的算法预判抛球轨迹,将接球可能性提高到了 70%
-
无聊的时候绝对不会吠叫
Kappa 公司的电子狗程序:
-
在电子狗被人摸的时候吠叫
-
在电子狗接触到它的万物配件的时候开始跑动以表示欢乐
-
电子狗拥有 50% 的可能性可以接住主人抛出去的球
-
在愚人节的时候,无聊情况下会整天吠叫
Sigma 公司的电子狗程序:
-
在电子狗非勿扰模式的情况下随机吠叫几声
-
在电子狗探测到牵狗绳配件的时候可以允许跑动
-
电子狗拥有 50% 的可能性可以接住主人抛出去的球
-
电子狗不可以吠叫一整天
在这三家公司中,只有 Kappa 公司的电子狗程序满足了要求
Epsilon 的电子狗程序的接球可能性提高到了 70%,并且在愚人节无聊时并不会整天都吠叫,不符合标准
Sigma 的电子狗程序在愚人节无聊时并不会吠叫一整天,也不符合标准
只有 Kappa 公司的电子狗程序实现了 Soony 电子狗程序规范的
-
可以叫
-
可以跑
-
接球概率 50%
-
愚人节无聊的时候整天吠叫
因此,Kappa 公司的电子狗程序可以被称为 Soony 电子狗程序的实现