5

D2D1是 Win32 中 Direct2D 技术的命名空间。但是我不明白这个名字的词源。这D2D部分最有可能是指Ddirect2D,但最后1部分让我感到困惑......

还有很多以“1”为后缀的类:IDWriteFactory1IDWriteFont1IDWriteTextLayout1等——它们的目的是什么,与没有后缀的类似对象有什么区别?

4

1 回答 1

6

COM 接口通常以递增的数字命名以允许版本控制。公开发布 COM 接口后,COM 规则规定不允许再更改接口,否则与现有代码的兼容性会中断。如果需要添加新功能,则必须公开新接口。让我们举个IDWriteFactory1例子。今天,这是第一个发布界面。将来,可能IDWriteFactory2会添加IDWriteFactory1以新方法扩展的功能。IDWriteFactory2现有代码被保留,因为他们不知道任何IDWriteFactory1关于IDWriteFactory2.

命名D2D1空间的命名可能类似。它可能被用于版本控制(Direct2D v1 ?)。也许D2D2将来会为不适合现有 Direct2D 架构的事物添加(Direct2D v2)命名空间。谁知道肯定。

于 2013-04-15T19:02:17.627 回答