依赖属性是否实现了享元模式?

3
WPF中的依赖属性系统是否应用了享元模式以节省内存存储?
2个回答

4
我认为你可以把它看作是享元模式的实现。
默认值在所有相同类型的控件之间共享。只有那些与默认值不同的属性会占用额外的内存。
更多信息可以在Christian Moser的博客或msdn关于值优先级的页面中找到。

那个链接与问题无关,为什么不链接到官方文档,而是一些随机的博客呢? - H.B.
2
@H.B.: Christian Moser是MVP,他的博客详细地解释了DPs的工作原理(而不仅仅是像MSDN文档中那样解释如何使用)。 - Steven Jeuris
那又怎样?官方文档也是由实际参与项目的人编写的。此外,我在那个博客上看到了很多糟糕的代码,所以我对它的看法并不是最好的。 - H.B.
@H.B.:我不明白MSDN如何详细介绍值解析策略,这是最相关于OP的内容。问题不是“什么是依赖属性”。 - Steven Jeuris
MSDN更加详细,那是主要的网站,还有一个专门针对值优先级的网站。(如果你比较层次结构,博客中还有其他不同之处) - H.B.

-1

你不需要关心这样的实现细节,要想确定系统是否符合该模式,你要么需要从涉及的工程师那里获取信息,要么需要通过大量反编译代码来进行工作。

唯一重要的是,依赖属性在未被设置时不需要占用任何空间。


我不同意 - 理解所应用的概念和设计模式以及这些概念的结果是很重要的 - 在这种情况下,默认情况下它们不占用任何空间。实现会发生变化,但概念基本保持不变。 - BrokenGlass
@BrokenGlass:这正是我的观点,实现可能会发生变化,所以如果他们现在使用模式X,那么可能会改为模式Y,唯一不变的是属性本身不占用空间,那么为什么要关心这个呢?当然,模式本身可能很有趣,但这完全独立于任何使用它的系统。 - H.B.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接