锁定老帖子 主题:Apache Avalon 简介
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2003-10-10
Avalon 的中文文档: http://www.freecoder.org/~seal/avalon/introduction.html 基于 Component 或者 Service 的设计思想(COP、SOP)比基于 Object 的设计思想(OOP、OOAD)更加接近于业务领域(问题域),而且可以获得简化的体系结构和更好的性能。 如果觉得看不明白可以直接看英文文档: http://avalon.apache.org/developing/developing-with-avalon.html 看英文文档比看中文文档快,还可以避免产生歧义。 Avalon 文档中对 COP 的定义: 面向组件的编程(Component Oriented Programming ,COP)是把系统分割成一些组件或设施的一种思想。每种设施都有一个工作接口和围绕该接口的契约。这种方式允许容易地更换组件的实例,同时不影响系统其它部分的代码。面向对象编程(Object Oriented Programming ,OOP)和 COP 的主要区别在于集成的层次。COP 系统的复杂性更容易管理,这得益于类之间更少的相互依赖。这提高了代码重用的程度。 COP 的主要好处之一是修改项目代码的一些部分不会破坏整个系统。另一个好处是可以有某组件的多种实现,并可以在运行时刻进行选择。 Avalon 文档中对 SOP 的定义: 面向服务的编程(Service Oriented Programming ,SOP)的思想是把系统划分为由系统提供的一些服务。 服务 1. 为其它人执行的工作或职责。 2. 提供修理或维护的一种设施。 3. 向公众提供工具的一种设施。 Avalon 的设计中最重要的两个模式是反向控制(IOC)和分离考虑(SOC)模式。以下是 Avalon 文档中的描述: Avalon 整个是基于一些特定设计原理来构建的。最重要的两个模式是反向控制(Inversion of Control)和分离考虑(Separation of Concerns)。Component Oriented Programming、Aspect Oriented Programming和 Service Oriented Programming 也对 Avalon 产生了影响。每种程序设计原理都可以写出数卷的书,但它们都是一些设计思维习惯。 反向控制 反向控制(Inversion of Control,IOC)的概念是指组件总是由外部进行管理的。这个短语是由Brian Foote在他的一篇论文中最先使用的。组件所需的一切通过 Contexts、Configurations 和 Loggers 的方式赋予组件。实际上,组件生命周期中的每个阶段都是由创建组件的代码所控制的。当您使用这种模式时,就实现了一种组件与您的系统安全交互的方法。 IOC 与安全性并不等价!IOC 提供了一种机制,允许你实现一个可扩展的安全模型。为了让一个系统真正做到安全,每个组件都必需安全,没有组件可以修改传递给它们的对象的内容,而且所有的交互都必须使用已知的实体。安全性是一个主要问题,IOC 是程序员工具库中的一种工具,用于实现安全性的目标。 分离考虑 您应该从不同的思考方向来看待您的系统,这一思想导致了分离考虑(Separation of Concerns,SOC)模式。 一个例子是从同一个问题空间的不同视角来看一个 Web 服务器。Web 服务器必需安全、稳定、可管理、可配置并满足 HTTP 规范。每种属性都是一个单独的考虑范围。这其中的某些考虑与其它考虑相关,如安全性和稳定性(如果一个服务器不稳定,它就不可能安全)。 分离考虑模式又导致了 Aspect Oriented Programming (AOP) 。研究者发现许多考虑不能在类或方法的粒度上进行处理。这些考虑被称为Aspect。Aspect 的例子包括管理对象的生命周期、记日志、处理异常和清理释放资源等。由于没有一种稳定的 AOP 实现,Avalon 开发团队选择通过提供一些小的接口,然后由组件来实现,从而实现 Aspect 或考虑。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2003-10-26
Avalon 以前看过,许多思想都是很好的,但一直没有机会在项目中应用,感觉他比较底层,如果有一个比较好的实现就好了
|
|
返回顶楼 | |
发表时间:2003-10-27
newroc 写道 Avalon 以前看过,许多思想都是很好的,但一直没有机会在项目中应用,感觉他比较底层,如果有一个比较好的实现就好了
Avalon 确实比较低层,它是用来帮助建造开发框架或者 AppServer 的,不是直接帮助开发应用程序的。Avalon 中体现了 SOP、AOP 的很多思想。WebService 就是一种 SOP 的体系结构。 Avalon 提供的组件是很丰富的,我们目前也只用到 Avalon 一部分功能,其它功能还有待我们进一步探索。 |
|
返回顶楼 | |
发表时间:2003-10-31
Erazor 写道 现在做Tapestry的Howard L。Ship也自己推出了一套系统HiveMind。
也是这种结构,不过据他说是集百家之长,而且更优更强。Tapestry马上可能要用HiveMind做底层结构重写。(Ps:Tapestry可是号东东啊,大家可别被Struts和JSF等等蒙蔽了双眼啊:)) 最后,最新的技术中,这种微内核的结构都要融入IoC的技术。比较有代表性的有 PicoContainer 呵呵,你也再用Tapestry,能不能类似于上面的样子,简单介绍介绍 你对PicoContainer也在研究吗?我现在的一个项目,正考虑把它用于管理dao,而不再使用factory。 |
|
返回顶楼 | |
发表时间:2003-10-31
avalon简直太老了,而且非常麻烦,其他好用的多的是:
type1 IoC:carbon,keel.. type2 IoC:spring,webwork2.. type3 IoC:pico.. |
|
返回顶楼 | |
发表时间:2003-11-02
另外,一定要把tapestry放在spring框架内吗?
我是新手,正决定使用哪个框架比交好,望赐教。 |
|
返回顶楼 | |
发表时间:2003-11-03
keel是基于avalon的,这个比较容易上手
|
|
返回顶楼 | |
发表时间:2003-11-03
Haiqing 写道 另外,一定要把tapestry放在spring框架内吗?
我是新手,正决定使用哪个框架比交好,望赐教。 no |
|
返回顶楼 | |
发表时间:2005-01-26
keel是基于avalon的,他的核心负责人也是原来expresso的负责人。
expresso是96年就开始了,虽然是基于struts的,但扩展的很好,很实用啊,我们就在用他,感觉很爽。 |
|
返回顶楼 | |
发表时间:2005-01-26
别用 Avalon 了,已经被 Apache 废弃了。我们也不准备再用了。其实我们原来也仅仅用到了 Avalon 的 Configuration 和 Log 这两块的功能。我们以前也并不认为 Avalon 是一个非常理想的容器。
大家都改用 Spring 好了。 |
|
返回顶楼 | |