IoC容器与面向方面编程在SP无线运营系统设计中的应用

一直以来,在SP无线运营系统的中关于同步接口的设计由于上下家系统设计的规范不一致,导致这一 部分不能很好的抽象共用,在我近2年来接触的各方平台接口大部分都是以一个接口作为一个页面的形式 开放给上下家使用,表现形式只是编程平台的不同,或asp或php等,同一系统各接口的共用部分也多以数 据访问层为主。

接下来将就我如何应用IoC控制反转容器和AOP来从技术角度解决这一问题做一个描述。

做无线运营的朋友众所周知,关于用户上下行(以短信,彩信,WAP等方式)直到扣费,涉及到的相关 步骤有 预提交,MO同步,MT状态报告,依业务的不同又有可能没有预提交(依靠指令分辨下家),MO同 步(MT流程内容控制在SP方),MT状态报告(如SP直接同步状态报告,MT报告就以MO同步形式表现)。

因此这里我首先抽象出三个对象, 分别是 ApiRequest表示预提交原始信息(包括号码,下家ID,附 加参数等),ApiSync表示MO同步的原始信息(包括号码,MO上行内容,LINKID或MOID等), ApiStateReport表示状态报告原始信息(包括号码,LINKID,状态参数等)

理所应当的,有了这些对象自然要有处理这些对象的人(?)和处理结果,接下来再添加一些东西

如图所示分别添加三个处理器来处理对应的预提交,MO同步以及状态报告的原始信息对象并返回相应 的处理结果。

时间: 2024-09-21 16:55:33

IoC容器与面向方面编程在SP无线运营系统设计中的应用的相关文章

Spring中反向控制和面向切面编程的应用

引言 在J2EE的整个发展历程中,现在正是一个非常时刻.从很多方面来说,J2EE都是一个伟大的成功:它成功地在从前没有标准的地方建立了标准:大大提升了企业级软件的开放程度,并且得到了整个行业和开发者的广泛认可.然而,J2EE在一些方面已经开始捉襟见肘.J2EE应用开发的成本通常很高.J2EE应用项目至少和从前的非J2EE项目一样容易失败--如果不是更容易失败的话.这样的失败率高得让人难以接受.在这样的失败率之下,软件开发几乎变成了碰运气.而在J2EE遭遇失败的场景中,EJB通常都扮演着重要的角色

依赖注入(DI)有助于应用对象之间的解耦,而面向切面编程(AOP)有助于横切关注点与所影响的对象之间的解耦(转good)

依赖注入(DI)有助于应用对象之间的解耦,而面向切面编程(AOP)有助于横切关注点与所影响的对象之间的解耦.所谓横切关注点,即影响应用多处的功能,这些功能各个应用模块都需要,但又不是其主要关注点,常见的横切关注点有日志.事务和安全等. 将横切关注点抽离形成独立的类,即形成了切面.切面主要由切点和通知构成,通知定义了切面是什么,以及何时执行何种操作:切点定义了在何处执行通知定义的操作. http://ju.outofmemory.cn/entry/216839 引子: AOP(面向方面编程:Asp

面向切面编程(AOP)的理解_javascript技巧

在传统的编写业务逻辑处理代码时,我们通常会习惯性地做几件事情:日志记录.事务控制及权限控制等,然后才是编写核心的业务逻辑处理代码.当代码编写完成回头再看时,不禁发现,扬扬洒洒上百行代码中,真正用于核心业务逻辑处理才那么几行,如图6-4所示.方法复方法,类复类,就这样子带着无可奈何遗憾地度过了多少个春秋.这倒也罢,倘若到了项目的尾声,突然决定在权限控制上需要进行大的变动时,成千上万个方法又得一一"登门拜访",痛苦"雪上加霜". 如果能把图6-4中众多方法中的所有共有代

《Spring技术内幕》——2.2节IoC容器系列的设计与实现:BeanFactory和ApplicationContext

2.2 IoC容器系列的设计与实现:BeanFactory和ApplicationContext在Spring IoC容器的设计中,我们可以看到两个主要的容器系列,一个是实现BeanFactory接口的简单容器系列,这系列容器只实现了容器的最基本功能:另一个是ApplicationContext应用上下文,它作为容器的高级形态而存在.应用上下文在简单容器的基础上,增加了许多面向框架的特性,同时对应用环境作了许多适配.有了这两种基本的容器系列,基本上可以满足用户对IoC容器使用的大部分需求了.下面

《Spring技术内幕》——2.3节IoC容器的初始化过程

2.3 IoC容器的初始化过程 简单来说,IoC容器的初始化是由前面介绍的refresh()方法来启动的,这个方法标志着IoC容器的正式启动.具体来说,这个启动包括BeanDefinition的Resouce定位.载入和注册三个基本过程.如果我们了解如何编程式地使用IoC容器,就可以清楚地看到Resource定位和载入过程的接口调用.在下面的内容里,我们将会详细分析这三个过程的实现. 在分析之前,要提醒读者注意的是,Spring把这三个过程分开,并使用不同的模块来完成,如使用相应的Resourc

Swift 面向协议编程入门

本文讲的是Swift 面向协议编程入门, 面向对象编程的思想没毛病,但老铁你可以更 666 的 上图这个人不是我,但这就是使用面向协议编程替换掉面向对象编程之后的感觉. 介绍 这个教程也是为了那些不知道类和结构体根本区别的人写的.我们都知道在结构体里是没有继承的,但是为什么没有呢? 如果你不知道上面问题的答案,那么花几秒钟看下下面的代码.请再次原谅我的排版,我已经让它尽可能的简单明了了. 注:译者已经改过排版了 class HumanClass { var name: String init(n

Spring在 IOC 容器中 Bean 之间的关系

一.在 Spring IOC 容器中 Bean 之间存在继承和依赖关系. 需要注意的是,这个继承和依赖指的是 bean 的配置之间的关系,而不是指实际意义上类与类之间的继承与依赖,它们不是一个概念. 二.Bean 之间的继承关系. 1.被继承的 ban 称为父 bean,继承这个父 bean 的 bean 称为子 bean.父 bean 可以通过指定 abstract 属性来声明为抽象的,子 bean 通过指定 parent 属性来指定父 bean 的引用. 2.子 bean 从父 bean 中

对依赖倒置原则(DIP)及Ioc、DI、Ioc容器的一些理解(转)

所谓依赖倒置原则(Dependence Inversion Principle)就是要依赖于抽象,不要依赖于具体.简单的说就是要求对抽象进行编程,不要对实现进行编程,这样就降低了客户与实现模块间的耦合,并由此引申出IoC.DI以及Ioc容器等概念.         面向过程的开发,上层调用下层,上层依赖于下层,当下层剧烈变动时上层也要跟着变动,这就会导致模块的复用性降低而且大大提高了开发的成本.   面向对象的开发很好的解决了这个问题,一般情况下抽象的变化概率很小,让用户程序依赖于抽象,实现的细

Spring之注解实现aop(面向切面编程)

1:Aop(aspect object programming)面向切面编程,名词解释:    1.1:功能:让关注点代码与业务逻辑代码分离    1.2:关注点        重复代码就叫做关注点    1.3:切面        关注点形成的类,就叫做切面(类)        面向切面编程,就是指对很多功能都有的重复代码抽取,再在运行的时候往业务方法上动态植入"切面类代码":    1.4:切入点        执行目标对象方法,动态植入切面代码        可以通过切入点表达式