常用Flex IOC框架比较分析
2009-10-09 00:00:00 来源:WEB开发网什么是IOC?一言以蔽之,IOC是一种软件设计模式。借助IOC,可用一个独立的对象为其他对象的数据成员填充正确的实现,而不是由这些对象自己负责此项工作。这样做的好处有两个。第一,可将对象的数据成员声明为接口,从而将对象与其具体实现分离(即契约式设计,design by contract)。第二,可从对象中删除创建逻辑,可以使对象的用途更为明确。
IOC容器提供一个框架,你可借此以一致和宣告的形式使用这个模式。将此模式和接口结合起来,可以创建出易于测试、使用灵活的对象。有关IOC模式更深入的讨论,请参看Martin Fowler的文章《Inversion of Control Containers and the Dependency Injection pattern》。
java和.NET的IOC框架早已建立,在Flex社区,近来也有不小的进展。
本文将讨论Flex中的一些IOC框架的工作原理、使用方法,并对这些框架进行比较。为了比较方便,我将在同一个工程(ProfileViewer)中使用Spring ActionScript、 Parsley、Flicc和Swiz这几个框架。
IOC的概念
一般有两种最常见的对象配置方法:
对象实例化(例如:var myObject = new Object())
对象查找(例如:var myObject = registry.getMyObject())
而利用IOC,你可在一个独立层中实例化应用程序要用到的对象,并传入它们所需的依赖。具体来说,最常见的实现方法也有两种:
Setter注入(例如:instance.myObject = new Object())
Constructor注入(例如:instance = new Instance( new Object() ))
一个IOC框架,通常由如下三个部分组成:配置、工厂和注入机制。
赞助商链接