设计模式

iOS设计模式-策略模式

2018-01-16  本文已影响0人  小_黑_屋

策略模式

企鹅案例

策略模式实现案例

结构

Penguin.h

#import <Foundation/Foundation.h>
#import "PenguinEatProtocol.h"
#import "PenguinPlayProtocol.h"
@interface Penguin : NSObject
@property (nonatomic, strong)id<PenguinPlayProtocol> playBehavior;
@property(nonatomic, strong)id<PenguinEatProtocol> eatBehavior;

- (void)penguinPlay;
- (void)penguinEat;
@end

Penguin.m

#import "Penguin.h"

@implementation Penguin

- (void)penguinPlay {
    [self.playBehavior play];
}

- (void)penguinEat {
    [self.eatBehavior eat];
}
@end

ViolentPenguin.m

#import "ViolentPenguin.h"
#import "PenguinEatFish.h"
#import "PenguinPlayHitDouDou.h"
@implementation ViolentPenguin
- (instancetype)init {
    if (self = [super init]) {
        self.eatBehavior = [PenguinEatFish new];
        self.playBehavior = [PenguinPlayHitDouDou new];
    }
    return self;
}
@end
    Penguin * violentPenguin = [ViolentPenguin new];
    [violentPenguin penguinPlay];
    [violentPenguin penguinEat];

    Penguin * boringPenguin = [BoringPenguin new];
    [boringPenguin penguinPlay];
    [boringPenguin penguinEat];
Demo地址:https://github.com/ChenBiaoHub/StrategyDemo

因为一般会 swift 都会 OC ,所以这里就只做了一份 OC Demo ,如果真有需要 swift Demo 的,我会根据留言情况决定是否补充一份 swift Demo。谢谢。

上一篇下一篇

猜你喜欢

热点阅读