Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
552 changes: 545 additions & 7 deletions DesignPatterns.xcodeproj/project.pbxproj

Large diffs are not rendered by default.

13 changes: 13 additions & 0 deletions DesignPatterns/Adapter适配器/Center.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
//
// Center.h
// DesignPatterns
//
// Created by RenPeng on 16/8/24.
// Copyright © 2016年 leichunfeng. All rights reserved.
//

#import "Player.h"

@interface Center : Player

@end
32 changes: 32 additions & 0 deletions DesignPatterns/Adapter适配器/Center.m
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
//
// Center.m
// DesignPatterns
//
// Created by RenPeng on 16/8/24.
// Copyright © 2016年 leichunfeng. All rights reserved.
//

#import "Center.h"

@interface Center ()
@property (nonatomic, copy) NSString *name;
@end

@implementation Center

- (instancetype)initWithName:(NSString *)name{
self = [super initWithName:name];
if (self) {
self.name = name;
}
return self;
}

- (void)attack{
NSLog(@"中锋:%@ 进攻",self.name);
}

- (void)defense{
NSLog(@"中锋:%@ 防守",self.name);
}
@end
19 changes: 19 additions & 0 deletions DesignPatterns/Adapter适配器/ForeignCenter.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
//
// ForeignCenter.h
// DesignPatterns
//
// Created by RenPeng on 16/8/24.
// Copyright © 2016年 leichunfeng. All rights reserved.
//

#import <Foundation/Foundation.h>

@interface ForeignCenter : NSObject

@property (nonatomic, copy) NSString *name;

- (instancetype)initWithName:(NSString *)name;

- (void)jingong;
- (void)fangshou;
@end
28 changes: 28 additions & 0 deletions DesignPatterns/Adapter适配器/ForeignCenter.m
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
//
// ForeignCenter.m
// DesignPatterns
//
// Created by RenPeng on 16/8/24.
// Copyright © 2016年 leichunfeng. All rights reserved.
//

#import "ForeignCenter.h"

@implementation ForeignCenter

- (instancetype)initWithName:(NSString *)name{
self = [super init];
if (self) {
self.name = name;
}
return self;
}

- (void)jingong{
NSLog(@"外籍中锋:%@ 进攻",self.name);
}

- (void)fangshou{
NSLog(@"外籍中锋:%@ 防守",self.name);
}
@end
18 changes: 18 additions & 0 deletions DesignPatterns/Adapter适配器/Forwards.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
//
// Forwards.h
// DesignPatterns
//
// Created by RenPeng on 16/8/24.
// Copyright © 2016年 leichunfeng. All rights reserved.
//

#import "Player.h"

/**
* 前锋
*/
@interface Forwards : Player



@end
32 changes: 32 additions & 0 deletions DesignPatterns/Adapter适配器/Forwards.m
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
//
// Forwards.m
// DesignPatterns
//
// Created by RenPeng on 16/8/24.
// Copyright © 2016年 leichunfeng. All rights reserved.
//

#import "Forwards.h"

@interface Forwards ()
@property (nonatomic, copy) NSString *name;
@end

@implementation Forwards

- (instancetype)initWithName:(NSString *)name{
self = [super initWithName:name];
if (self) {
self.name = name;
}
return self;
}

- (void)attack{
NSLog(@"前锋:%@ 进攻",self.name);
}

- (void)defense{
NSLog(@"前锋:%@ 防守",self.name);
}
@end
13 changes: 13 additions & 0 deletions DesignPatterns/Adapter适配器/Guards.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
//
// Guards.h
// DesignPatterns
//
// Created by RenPeng on 16/8/24.
// Copyright © 2016年 leichunfeng. All rights reserved.
//

#import "Player.h"

@interface Guards : Player

@end
32 changes: 32 additions & 0 deletions DesignPatterns/Adapter适配器/Guards.m
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
//
// Guards.m
// DesignPatterns
//
// Created by RenPeng on 16/8/24.
// Copyright © 2016年 leichunfeng. All rights reserved.
//

#import "Guards.h"

@interface Guards ()
@property (nonatomic, copy) NSString *name;
@end

@implementation Guards

- (instancetype)initWithName:(NSString *)name{
self = [super initWithName:name];
if (self) {
self.name = name;
}
return self;
}

- (void)attack{
NSLog(@"后卫:%@ 进攻",self.name);
}

- (void)defense{
NSLog(@"后卫:%@ 防守",self.name);
}
@end
18 changes: 18 additions & 0 deletions DesignPatterns/Adapter适配器/Player.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
//
// Player.h
// DesignPatterns
//
// Created by RenPeng on 16/8/24.
// Copyright © 2016年 leichunfeng. All rights reserved.
//

#import <Foundation/Foundation.h>

@interface Player : NSObject

- (instancetype)initWithName:(NSString *)name;

- (void)attack;
- (void)defense;

@end
33 changes: 33 additions & 0 deletions DesignPatterns/Adapter适配器/Player.m
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
//
// Player.m
// DesignPatterns
//
// Created by RenPeng on 16/8/24.
// Copyright © 2016年 leichunfeng. All rights reserved.
//

#import "Player.h"

@interface Player ()
@property (nonatomic, copy) NSString *name;
@end

@implementation Player

- (instancetype)initWithName:(NSString *)name{
self = [super init];
if (self) {
self.name = name;
}
return self;
}

- (void)attack{

}

- (void)defense{

}

@end
15 changes: 15 additions & 0 deletions DesignPatterns/Adapter适配器/Translator.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
//
// Translator.h
// DesignPatterns
//
// Created by RenPeng on 16/8/24.
// Copyright © 2016年 leichunfeng. All rights reserved.
//

#import "Player.h"

@interface Translator : Player

- (instancetype)initWithName:(NSString *)name;

@end
42 changes: 42 additions & 0 deletions DesignPatterns/Adapter适配器/Translator.m
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
//
// Translator.m
// DesignPatterns
//
// Created by RenPeng on 16/8/24.
// Copyright © 2016年 leichunfeng. All rights reserved.
//

#import "Translator.h"
#import "ForeignCenter.h"

@interface Translator ()
@property (nonatomic, strong) ForeignCenter *wjzf;
@end

@implementation Translator

//- (ForeignCenter *)wjzf{
// if (!_wjzf) {
// _wjzf = [[ForeignCenter alloc] init];
// }
// return _wjzf;
//}

- (instancetype)initWithName:(NSString *)name{
self = [super initWithName:name];
if (self) {
// self.wjzf.name = name;
self.wjzf = [[ForeignCenter alloc] initWithName:name];
}
return self;
}

- (void)attack{
[self.wjzf jingong];
}

- (void)defense{
[self.wjzf fangshou];
}

@end
15 changes: 15 additions & 0 deletions DesignPatterns/ChainOfResponsibility/CommonManager.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
//
// CommonManager.h
// DesignPatterns
//
// Created by RenPeng on 16/8/29.
// Copyright © 2016年 leichunfeng. All rights reserved.
//

#import "Manager.h"

@interface CommonManager : Manager

- (instancetype)initWithName:(NSString *)name;

@end
33 changes: 33 additions & 0 deletions DesignPatterns/ChainOfResponsibility/CommonManager.m
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
//
// CommonManager.m
// DesignPatterns
//
// Created by RenPeng on 16/8/29.
// Copyright © 2016年 leichunfeng. All rights reserved.
//

#import "CommonManager.h"

@implementation CommonManager

- (instancetype)initWithName:(NSString *)name{
self = [super init];
if (self) {
self.name = name;
}
return self;
}

//override

- (void)requestApplications:(Request *)request{
if (request.type == RequestType_Leave && request.number <= 2) {
NSLog(@"%@:%@,数量%ld被批准",self.name,request.content,(long)request.number);
}else{
if (self.superior) {
[self.superior requestApplications:request];
}
}
}

@end
14 changes: 14 additions & 0 deletions DesignPatterns/ChainOfResponsibility/GeneralManager.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
//
// GeneralManager.h
// DesignPatterns
//
// Created by RenPeng on 16/8/29.
// Copyright © 2016年 leichunfeng. All rights reserved.
//

#import "Manager.h"

@interface GeneralManager : Manager

- (instancetype)initWithName:(NSString *)name;
@end
Loading