D2D1
是Win32中Direct2D技术的命名空间。但是我不明白这个名字的词源。 D2D
部分最有可能是指 D 直立 2D ,但最后 1 让我感到困惑......
还有很多以“1”作为后缀的类:IDWriteFactory1
,IDWriteFont1
,IDWriteTextLayout1
等等 - 它们的目的是什么,与类似对象的区别没有后缀?
答案 0 :(得分:5)
COM接口通常以越来越多的数字命名以允许版本控制。一旦COM接口公开发布,COM规则就要求不再允许更改接口,或者与现有代码断开兼容。如果需要添加新功能,则必须公开新接口。我们以IDWriteFactory1
为例。今天,这是第一个发布界面。将来,可能会添加使用新方法扩展IDWriteFactory2
的{{1}}。保留现有代码,因为他们对IDWriteFactory1
一无所知,但新代码可以创建IDWriteFactory2
对象并查询它以查看它是否支持IDWriteFactory1
,如果是,则使用更新的方法。
IDWriteFactory2
命名空间的命名可能类似。它可能用于版本控制(Direct2D v1?)。也许将来会为不适合现有Direct2D架构的东西添加D2D1
(Direct2D v2)命名空间。谁知道肯定。