Tapestry IoC Decorator

Advisor VS. Decorator

Service Decoration is augmented with Service
Advice.

Advisor: 跟Decorator相似,且普通,因为它作用于接口,在编译时根本就不会去考虑。

Decorator: 在编译时,Tapestry就会知道哪一个接口别装饰了,然后追加一个新的实现。

装饰,他是一个比较流行的设计模式。运用装饰器模式,一个接口的实现在不改变原有的实现内容的基础上追加新的功能。

在Tapestry中,表现出来就是拦截器,给外界公开的是一个新的对象,而实质上还是原来的对象。

Decorators often are used in the context
of cross-cutting concerns, such as logging or
transaction management. This approach is a kind of aspect
oriented design
.

装饰器经常被用在切面上,如logging或者事务管理。这种方式是一种面向切面的设计。

时间: 2024-10-03 21:53:24

Tapestry IoC Decorator的相关文章

Tapestry IoC Configuration

Tapestry用来对服务进行配置的方式 对服务进行配置需要用到contribute,然后+serviceId. 看一下代码: public static void arbitraryMethodName(MappedConfiguration<String,FileServicer> configuration) { configuration.add("doc", new WordFileServicer()); configuration.add("ppt&

My.Ioc 代码示例——谈一谈如何实现装饰器 (Decorator) 模式,兼谈如何扩展 My.Ioc

装饰器模式体现了一种“组合优于继承”的思想.当我们要动态为对象增加新功能时,装饰器模式往往是我们的好帮手. 很多后期出现的 Ioc 容器都为装饰器模式提供了支持,比如说 Autofac.在 My.Ioc 中,默认不提供装饰器支持,但我们可以自己进行扩展,以提供此项功能. using System; using System.Collections.Generic; using System.Diagnostics; using System.Reflection; using My.Ioc; u

学习spring容器IOC(3)之依赖和依赖注入

学习开涛跟我学spring3 http://jinnianshilongnian.iteye.com/ 为什么要应用依赖注入,应用依赖注入能给我们带来哪些好处呢? 1.动态替换Bean依赖对象,程序更灵活:替换Bean依赖对象,无需修改源文件:应用依赖注入后,由于可以采用配置 文件方式实现,从而能随时动态的替换Bean的依赖对象,无需修改java源文件: 2.更好实践面向接口编程,代码更清晰:在Bean中只需指定依赖对象的接口,接口定义依赖对象完成的功能,通过容 器注入依赖实现: 3.更好实践优

Spring IOC设计原理解析(1)

一. 什么是Ioc/DI?大家都知道IOC 是控制反转(Inversion of Control,缩写为IoC)是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度. 之前我们的bean对象的创建是交由调用者通过new 的方式进行创建的, 那么这样的方式有一些不足之处: bean的整个生命周期都交给了这个调用者了, 过程如下:并将该对象的引用返回.如果该返回被一个引用接收,由于对象的引用不为0,对象依然存在,不会被垃圾回收. 而另外一个对象调用这个class 的时候还是会创建一个对

CDI Features(EL(SPEL),Decorator,Interceptor,Producer)

一.EL(SPEL) 1.概述: EL是JSP内置的表达式语言,用以访问页面的上下文以及不同作用域中的对象 , 取得对象属性的值,或执行简单的运算或判断操作.EL在得到某个数据时,会自动进行数据类型的转换. 使用EL表达式输出数据时,如果有则输出数据,如果为null则什么也不输出. 2.语法: EL表达式总是放在{}中,而且前边有一个\(作为前缀:\){} 获取对象的属性值可以直接通过"对象.属性名":${user.name}; 注意:这里的属性名是get和set方法对应的属性值,并不

框架学习之Spring(一IOC)----HelloWrod

一.概述 Spring是一个开源框架,它的核心是控制反转(IOC)和面向切面(AOP).简单来说,Spring是一个分层的JavaSE/EEfull-stack(一站式)轻量级开源框架. EE 开发分成三层结构: * WEB 层:Spring MVC. * 业务层:Bean 管理:(IOC) * 持久层:Spring 的 JDBC 模板.ORM 模板用于整合其他的持久层框 架 注:Spring框架既可以单独使用 ,也可以结合其他优秀框架一起使用. 二.环境搭建 开发包: 下载地址:http://

分享基于.NET MVC+EF CodeFirst+IOC+EasyUI的框架设计

**注:要做工,没什么时间,等有空时会上传到GIT,项目结构如上,简单的说一下: **支持IOC及多数据库等,各项目由MVC区域隔离: 主要使用基于接口与抽象类进行高度的抽象与接口隔离,与其它框架比较优点如下: 1,抽象度非常高,接口隔离,项目清晰完整,任何一部分均可且容易替换:一开始就非常注重非陷入复杂化: 2,框架非常易用,且易于扩展:编程新手也可立即上手使用: 3,设计目标为:轻量化.高抽象度.可扩展性.模块任意替换.清晰简洁易用(易懂.代码量要少[没必要码农]): **NetDevelo

iOS控制反转(IoC)与依赖注入(DI)的实现

背景 最近接触了一段时间的SpringMVC,对其控制反转(IoC)和依赖注入(DI)印象深刻,此后便一直在思考如何使用OC语言较好的实现这两个功能.Java语言自带的注解特性为IoC和DI带来了极大的方便,要在OC上较好的实现这两个功能,需要一些小小的技巧. 控制反转和依赖注入 控制反转 简单来说,将一个类对象的创建由手动new方式改为从IOC容器内获取,就是一种控制反转,例如我们现在要创建一个ClassA类,则常规方法为 ClassA *a = [ClassA new]; 如果使用控制反转,

设计模式之Decorator(油漆工)(转)

Decorator常被翻译成"装饰",我觉得翻译成"油漆工"更形象点,油漆工(decorator)是用来刷油漆的,那么被刷油漆的对象我们称decoratee.这两种实体在Decorator模式中是必须的. Decorator定义: 动态给一个对象添加一些额外的职责,就象在墙上刷油漆.使用Decorator模式相比用生成子类方式达到功能的扩充显得更为灵活. 为什么使用Decorator? 我们通常可以使用继承来实现功能的拓展,如果这些需要拓展的功能的种类很繁多,那么势