#import <Foundation/Foundation.h>

@interface Window : NSObject
-(void)open;
@end

@implementation Window

-(void)open
{
    NSLog(@"open");
}

@end


@interface Button : NSObject
{
        id target;
        SEL action;
}
-(void)click;
-(void)addTarget:(id)t action:(SEL)a;
@end

@implementation Button

-(void)click
{
        [target performSelector:action];
}
-(void)addTarget:(id)t action:(SEL)a
{
    target = t;
    action = a;
}

@end

#import <Foundation/Foundation.h>

int main (int argc, const char * argv[])
{
    Window* wnd = [Window alloc];
    Button* btn = [Button alloc];
    
    [btn addTarget:wnd action:@selector(open)];
    [btn click];
    [btn release];
    [wnd release];
}

objective c 흑흑..