首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果没有CF中的IoC框架(也称为ColdSpring、Lightwire等),您会做什么?

如果没有CF中的IoC框架(也称为ColdSpring、Lightwire等),您会做什么?
EN

Stack Overflow用户
提问于 2010-09-03 20:11:14
回答 3查看 362关注 0票数 0

我做ColdFusion已经两年了,我一直使用ColdSpring来注入依赖性。我想看看没有他们我能不能活下去。有什么可供选择的?

单身人士

onApplicationStart()并将服务注入应用程序范围?

暂时性的

工厂模式?XXXFactory.createXXX()?或者..。XXXService.createXXX()?

请评论,并分享您的选择。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-09-03 21:10:57

亨利,

我会编写一个'DIManager‘CFC来管理我自己的依赖项,并使用onApplicationStart()将'DIManager’持久化到应用程序范围中,这样它就可以在应用程序的生命周期中使用。

每个服务将负责创建您在问题中建议的临时服务。

我将选择在我的“DIManager”中使用DIManager 9s缓存方法来管理单个对象的持久性,因为随着ColdFusion的发展,我希望对机器存储机制提供更好的支持,并且,您可以为每个单例定义配置文件,以便一些在一段时间后过期,而另一些则为应用程序的生命周期服务。这将提供比使用应用程序作用域更大的控制。但是,配置文件可以将对象放置在集群范围、服务器范围等.,这取决于您的特定挑战是什么。

-我几乎为我即将完成的一个项目走了这条路,但是,我决定不重新发明轮子,而只是使用ColdBox,因为它具有极好的缓存能力。我还要补充的是,ColdBox团队几乎完成了将框架分解为不同单元的目标。最后一个独立的部分是WireBox,它应该很快发布--因此,如果您在使用框架方面有限制,而不是像MVC或AOP那样,您可以用自己的方式编写应用程序,并且仍然使用WireBox或其他已经存在的IoC框架(比如您一直在使用的:)。

希望这能有所帮助。

我也期待着其他答案。

票数 2
EN

Stack Overflow用户

发布于 2010-09-13 00:20:39

当然,在某些情况下,DI框架隐藏了一些代码气味,比如自动传入一堆参数。通过手工做事,或者至少知道这样做会导致你的设计变得更干净。它可能有点像学习C,即使你不经常使用它,了解它是很好的东西。

这里有一篇关于自己动手吧的有趣文章,它关注于Java,但可能值得您花点时间。

票数 1
EN

Stack Overflow用户

发布于 2010-09-07 18:58:07

这些都是很好的建议。我最近在设置支持服务系列时的主要目标是准备缓存,并将应用程序代码从API的内部工作中分离出来。具体来说,这转化为总是使用工厂来生成瞬态,并且总是有接收来自应用程序的请求的单例服务。

不过,我想没有AOP我就活不下去了。我已经用分层拦截器解决了这么多令人惊讶的问题,我真的应该在我的办公桌上建造一个小神殿来崇拜AOP。

因此,总之,在构建自己的解决方案时,请尝试实现单例服务和瞬态工厂。AOP是一个巨大的奖励,但我无法告诉您如何实现它。我是一个ColdSpring用户,感谢它所做的一切!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3639271

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档