|
1
6
我自己最近也在深入研究这个模式,我可以告诉你,要找到关于它的信息是相当困难的。Yegge将其称为原型或属性,但这两种模式都被过度使用,并被称为另外两种不同的模式。有些人将耶格提出的系统称为“严格的[sic]类型”,因此这是另一种研究途径。
这是一个非常好的想法,在一些应用中有很多优点,在其他应用中有很多缺点。从本质上讲,您获得的是一种在运行时构建“类型”的非常灵活的方法,但您失去了许多语言的强大类型检查功能。实现它的最简单方法是
您可能会在生产系统中进行的一个非常有可能的升级是对值使用某种特殊类型,对键使用某种“重键”,这样您就可以在模型上获得一些额外的类型和安全信息。
OpenQuote
是一个非常灵活的项目,用于报价任何一般类型的保险。它是用Java编写的,但是如果你知道C,它应该读得很好。它的核心在于
然后在该核心之上构建许多领域特定的模型类型。因此,可以将保险单对象视为具有一个灵活、可扩展的福利列表,可以在运行时添加、删除或修改该列表。每项福利也可以扩展或减少其属性。
|
|
|
2
3
当您想要制作对象的原型或具有某种程度上迫使您迭代部署API/接口的开发结构时,properties模式特别有用(或者,对我来说是这样)。 如果你一开始就对一个物体的某些属性有了一个概念,那么你就可以创造它们。后来,您发现(并且您已经预料到这一发现…)您对主题领域的理解不充分,您根据第一个对象的原型进行了新的对象设计/行为。等等关于这个主题的wiki页面结合静态类型语言对这个主题进行了很好的描述,但是如果你真的对原型开发很认真的话,我建议你研究一下JavaScript或Lua。在静态类型化语言中,原型的属性是不可变的,这一事实最终会让你一败涂地。 编辑:哦,我看到你链接到一篇关于这个主题的优秀文章。Yegges对这个主题的使用/解释当然让我自己相形见绌。请通读几遍,在java这样的语言中使用properties模式的优点/含义应该非常清楚。 编辑2:维基百科文章链接: http://en.wikipedia.org/wiki/Prototype_pattern |
|
|
3
0
任何 项目,因为报价: Java基本上不支持Properties模式。 出于同样的原因,C#也是如此。当我谈到那句话时,我感到有点安慰,因为我肯定找不到任何方法把它们结合在一起。 所以我不确定我是否理解你的问题。不过,谢谢你的链接,我只为这个问题投票。现在我对一些事情有了更好的理解。 |