![]() |
1
0
我的建议是:重新分析对象,尝试应用于所有OOP规则和最佳实践(抽象、封装、模块化、多态性、继承、干燥等)。 所以基本上,您希望组件B具有方法iscrunchable(),然后组件A扩展了B,iscrunchable()可以从继承中获得。A和B都会返回不同的状态,所以我看不出有任何问题。 如果您让一个类“above”具有所有方法和组件A和B扩展该类,那么您将获得“大型组件”的解决方案,但我再次尝试对此进行更多的分析。 如果这个答案没有帮助,你可以发布真实的例子,也许我们会更好地理解为什么你需要这样做。 |
![]() |
2
2
没有测试,但我会尝试将每个函数的内容放入include中,但在组件文件本身中定义函数。`
祝你好运。 |
![]() |
3
0
我和扎尔科在这件事上,你应该重新安排你的物品,但如果你必须… 在CF5中,我使用了一个将函数放入请求范围的技巧。这可以通过将函数名分配给同名的请求变量来实现,例如,对于一个名为getlatestudate的函数:
然后,在将文件包含在函数中之前,对请求范围中的变量的存在进行检查。只有当请求范围的变量不存在时,才包含函数文件。 缺点是您需要引用带有请求作用域前缀的函数,而且这只在传统的页面请求隐喻中有效,它很可能会打断远程处理调用之类的事情。 我没有测试过这个和YMMV。 |
![]() |
4
0
我还没有测试过,但是用如下东西包装你的cfinclude怎么样:
|
![]() |
5
0
如果您的问题纯粹是为了避免巨大的不易处理的对象,那么您可以将对象分解为几个较小的对象。组件A仍然可以包含方法abcd,但方法A调用组件A方法A,方法B调用组件B方法B等。如果每个子组件不是基于任意分组,而是基于功能的合理分组,则最佳。 另一个要试验的东西(这是一个黑暗中的疯狂刺伤)功能通常被描述为附属于某个范围的结构。例如,您可以通过structDelete(this,onRequestStart)从application.cfc中删除函数。也许您可以使用相同的方法删除include中先前附加到请求范围的函数? |
![]() |
Schadre · C-plus编码错误 2 年前 |
![]() |
Nithin K · 即使类属性的类型正确,也会获取异常 2 年前 |
![]() |
amirreza870 · Python OOP-更改类文本 2 年前 |
![]() |
A_K · 使用cat或打印方法打印部分内容的子集闭包 2 年前 |
![]() |
Mo Fatah · 如何使用Python类打印数独板? 2 年前 |