2
|
Christian Studer delphist · 技术社区 · 16 年前 |
![]() |
1
2
这对我来说很好,我倾向于用一条经验法则:“保持这个的人会理解它吗?”这是一个容易理解的解决方案。 如果只有一个“a”,您可以考虑使用注册表模式,例如请参见 http://www.phppatterns.com/docs/design/the_registry |
![]() |
2
1
我将首先检查您是否使用了错误的模式:从您的应用程序逻辑来看,B真的应该了解A吗?如果B需要了解A,那么父子关系似乎还不够。例如,a可以是子对象,或者a的部分逻辑可以进入层次结构中“低于”b的第三个对象(即不知道b)。 也就是说,我建议您在B中有一个方法将A注册为数据源,或者在A中创建一个方法将B注册为 Observer 以及B中的匹配方法,A用于通知B值更改。 |
![]() |
3
0
与保罗所说的类似,如果只有一个a,那么可以将其作为一个单例实现。然后,可以使用setter方法(基本上是再次聚合)将as的实例作为参数传递给构造函数(聚合),或者直接在构造函数(组合)中设置此关系。 然而,尽管单件是强大的,但是要小心使用组合来实现它们。很高兴您能这样做并去掉一个构造函数参数,但是如果不重写代码,就不可能用其他东西替换。总的来说,我会坚持聚合,即使使用单子
|
![]() |
4
0
很遗憾,这样的代码不符合我的需要。是否有其他方法访问父对象属性? 我试着解释原因。我们编写一个游戏软件,有些类有非常“不寻常”的依赖关系,并且以不同的方式相互影响。这就是为什么代码有时几乎不受支持,在每一个实例中都没有与父母的链接(有时甚至是来自不同环境的几个父母,即一个小队可能属于战斗和用户等)。 现在,链接不满足我的原因。当我为客户端生成输出时,我使用一种XML中的序列化对象。在遇到递归引用(比如到父级的链接)之前,它的工作非常好。我可以让它们受到保护,但随后它们就失去了它们的用法,即(虚拟示例)
另一种方法-在每个可序列化类中实现序列化方法,并在序列化程序内部调用它,如下所示:
但这是很多东西要写和支持!有时我动态地为序列化程序生成对象(更少的流量)。 我甚至想到了一个黑客:教序列化程序忽略某些类中的一些属性)。呵呵。。。坏主意… 这是一个长期的讨论,但相信我,注册中心和观察员不适合。还有其他想法吗? |
![]() |
Jacco · 未能格式化我的日期以在php中正确工作 1 年前 |
![]() |
jay ram · 如何在URL核心php中从API获取JSON? 1 年前 |
|
Ishwarya A · php电子表格在浏览器中显示多张excel 1 年前 |