MUWork--一个基于Objective-c的AOP开发框架

MUWork是一个基于Objective-c的AOP开发框架,灵感来源于XWork,实现了Command模式。它包括MUAction、MUInterceptor等7个组件,提供业务逻辑与界面逻辑分离,便于扩展和维护。通过拦截器实现AOP,Action处理核心操作,Interceptor进行逻辑扩展,MUResult处理返回结果。
摘要由CSDN通过智能技术生成

先啥都不说,看一下MUWork的使用例子,让我们通过代码来感性地认识一下这是个什么东西。

首先,你的程序里必须要有这些文件:



然后我们声明一个类:


#import <Foundation/Foundation.h>
#import "MUActionProtocol.h"

@interface TestAction : NSObject<MUActionProtocol> {
}

@property(nonatomic, strong) NSString* name;

@end


实现它:

#import "TestAction.h"

@implementation TestAction

@synthesize name = _name;

- (id)execute
{
    NSLog(@"name: %@", _name);
    return [NSString stringWithFormat:@"Action invoked:%@", _name];
}

@end

再声明一个TestInteceptor类:

#import <Foundation/Foundation.h>
#import "MUInterceptorProtocol.h"

@interface TestInterceptor : NSObject<MUInterceptorProtocol> {
}

@end

实现它

#import "TestInterceptor.h"
#import "MUHandler.h"

@implementation TestInterceptor

- (BOOL) actionBefore:(MUHandler*) handler
{
    NSLog(@"actionBefore was invoked.");
    return YES;
}
- (void) actionAfter:(MUHandler*) handler
{
    NSLog(@"actionAfter was invoked.");
}

@end


OK,我们来下一步。

在主程序里,我们可以这样写:

TestMUInterceptor* interceptor = [[TestMUInterceptor alloc] init];
TestAction* action = [[TestAction alloc] init];
DefaultMUResult* result = [[DefaultMuResult alloc] init];

MUHandler* handler = [[MUHandler alloc] init];
[handler setAction:action];
[handler setResult:result];
[handler addInterceptor:interceptor];
[handler setContextObject:@"abc" forKey:@"name"];

MUInvocation* invocation = [[MUInvocation alloc] init];
NSLog(@"%@", [invocation invoke:handler]);


我们运行一下程序,会输出什么呢?
2012-07-29 11:01:49.740 TestMUWork[537:5d03] actionBefore was invoked.
2012-07-29 11:01:49.741 TestMUWork[537:5d03] name: abc
2012-07-29 11:01:49.742 TestMUWork[537:5d03] actionAfter was invoked.
2012-07-29 11:01:49.744 TestMUWork[537:5d03] Action invoked:abc

改一下这句:


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值