【发布时间】:2009-12-05 15:18:27
【问题描述】:
是否有一种解决方法可以在不涉及方面和切点等的情况下实现横切关注点?
我们在 Spring MVC 中,并且正在开发一个业务应用程序,由于各种原因,进入 AspectJ 或 Spring 的方面处理是不可行的。
我们的一些控制器已经变得非常臃肿(太重了),到处都是大量失焦的代码。
每次我坐下来重构时,我都会看到同样的事情一遍又一遍地完成。请允许我解释一下:
每次我必须准备一个视图时,我都会为 UI 添加一个国家列表。 (对象添加到 ModelAndView)。该列表从数据库中提取到 ehCache 中。
现在,当我尝试将列表 INLINE 添加到 mav 的所有位置时,这很糟糕。相反,我准备了一个函数来处理每个 ModelAndView。如何?好吧,对函数有更多的垃圾调用!
我用一个麻烦换另一个麻烦。
有什么设计模式/技巧可以帮助我一点?我厌倦了调用函数来向我的 ModelAndView 添加东西,而且只有超过 3500 行的控制器代码,我快要疯狂地找到所有东西丢失的粘合点!
欢迎提出建议。没有 AspectJ 或 Spring 原生的横切关注风味。
【问题讨论】:
-
AOP 是为横切关注点而开发的,因为 OOP 本身并不适合这一点。