Skip to content

Commit 7854da9

Browse files
committed
Mediator
Mediator
1 parent 892482b commit 7854da9

File tree

5 files changed

+39
-1
lines changed

5 files changed

+39
-1
lines changed

MLDesignPatterns-OC/MLDesignPatterns-OC/Mediator/ChatRoom.h

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,10 @@
77
//
88

99
#import <Foundation/Foundation.h>
10+
#import "MediatorProtocol.h"
1011

11-
@interface ChatRoom : NSObject
12+
@interface ChatRoom : NSObject<MediatorProtocol>
13+
14+
- (void)showMessage:(NSString *)message userName:(NSString *)name;
1215

1316
@end

MLDesignPatterns-OC/MLDesignPatterns-OC/Mediator/ChatRoom.m

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,13 @@
1010

1111
@implementation ChatRoom
1212

13+
- (void)showMessage:(NSString *)message {
14+
NSLog(@"%@\n",message);
15+
}
16+
17+
- (void)showMessage:(NSString *)message userName:(NSString *)name {
18+
NSString *string = [NSString stringWithFormat:@"%@:%@", name, message];
19+
[self showMessage:string];
20+
}
21+
1322
@end

MLDesignPatterns-OC/MLDesignPatterns-OC/Mediator/MediatorProtocol.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,6 @@
1010

1111
@protocol MediatorProtocol <NSObject>
1212

13+
- (void)showMessage:(NSString *)message;
14+
1315
@end

MLDesignPatterns-OC/MLDesignPatterns-OC/Mediator/User.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,12 @@
77
//
88

99
#import <Foundation/Foundation.h>
10+
#import "ChatRoom.h"
1011

1112
@interface User : NSObject
1213

14+
- (instancetype)initWithName:(NSString *)name room:(ChatRoom *)room;
15+
16+
- (void)sendMessage:(NSString *)message;
17+
1318
@end

MLDesignPatterns-OC/MLDesignPatterns-OC/Mediator/User.m

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,25 @@
88

99
#import "User.h"
1010

11+
@interface User()
12+
13+
@property (nonatomic, copy) NSString *name; ///< 用户昵称
14+
@property (nonatomic, strong) ChatRoom *room; ///< 当前聊天室
15+
16+
@end
17+
1118
@implementation User
1219

20+
- (instancetype)initWithName:(NSString *)name room:(ChatRoom *)room {
21+
if (self = [super init]) {
22+
_name = name;
23+
_room = room;
24+
}
25+
return self;
26+
}
27+
28+
- (void)sendMessage:(NSString *)message {
29+
[_room showMessage:message userName:_name];
30+
}
31+
1332
@end

0 commit comments

Comments
 (0)