发帖    主题    评论    推荐    标签    作者    订阅    查搜    注册   登陆   关注
 
面向对象 设计模式 领域驱动设计 企业架构 框架 开发教程 微服务 CQRS 扩展性 并发编程 事件溯源 分布式 SOA

请教IoC模式中的问题

    
2004-09-16 23:44
赞助商链接

IoC模式中一文中有如下描述:
“DefaultPicoContainer container = new DefaultPicoContainer();
container.registerComponentImplementation(PicoUserManager.class);
container.registerComponentImplementation(PicoXXXX1Manager.class);
container.registerComponentImplementation(PicoXXXX2Manager.class);
.....

Logging logging = (Logging) container.getComponentMulticaster();

logging.enableLogging(new SimpleLog("pico"));//激活log

  由上代码可见,通过使用简单一行logging.enableLogging()方法使所有的应用类的记录功能激活。这是不是类似AOP的advice实现?


这个地方“通过使用简单一行logging.enableLogging()方法使所有的应用类的记录功能激活“,怎么理解?我没想通!!!

2004-09-17 15:00

使用 IoC 确实能实现类似 AOP 的功能。

Logging logging = (Logging) container.getComponentMulticaster(Logging.class);
会取出所有实现了 Logging 接口的组件,并返回一个动态代理类

logging.enableLogging(new SimpleLog("pico"));//激活log
logging代理类会调用每一个组件的 enableLogging 方法

2004-09-17 18:38

Logging又不是List它如何同时指向多个组件?

2004-10-10 09:40

关于“通过使用简单一行logging.enableLogging()方法使所有的应用类的记录功能激活“。

所有应用类都有各自自己的记录功能,logging.enableLogging()类似触发器,可以从一个记录这个纵向激活所有应用类的记录功能。

有个开源项目是利用picocontainer来实现AOP。

依赖注入DI     

赞助商链接

赞助商链接

返回顶部

移动版 关于本站 使用帮助 联系管理员 最佳分辨率1366x768
OpenSource JIVEJDON Powered by JdonFramework Code © 2002-20 jdon.com