ios設計模式 - 模板
原理圖
定義乙個操作中的演算法的骨架,而將步驟延遲到子類中。模板方法使得子類可以不改變乙個演算法的結構即可重定義演算法的某些特定步驟。原始碼
//
// gameprotocol.h
// templatepattern
//// created by youxianming on 15/10/27.
//#import @protocol gameprotocol @required
/** * 設定玩家個數
* * @param count 數目
*/- (void)setplayercount:(int)count;
/** * 返回玩家數目
* * @return 玩家數目
*/- (int)playercount;
/** * 初始化遊戲
*/- (void)initializegame;
/** * 開始遊戲
*/- (void)makeplay;
/** * 結束遊戲
*/- (void)endofgame;
@end
//
// monopoly.h
// templatepattern
//// created by youxianming on 15/10/27.
//#import #import "gameprotocol.h"
@inte***ce monopoly : nsobject @end
//
// monopoly.m
// templatepattern
//// created by youxianming on 15/10/27.
//#import "monopoly.h"
@inte***ce monopoly ()
@property (nonatomic, assign) int gameplayercount;
@end
@implementation monopoly
- (void)setplayercount:(int)count
- (int)playercount
- (void)initializegame
- (void)makeplay
- (void)endofgame
@end
//
// chess.h
// templatepattern
//// created by youxianming on 15/10/27.
//#import #import "gameprotocol.h"
@inte***ce chess : nsobject @end
//
// chess.m
// templatepattern
//// created by youxianming on 15/10/27.
//#import "chess.h"
@inte***ce chess ()
@property (nonatomic, assign) int gameplayercount;
@end
@implementation chess
- (void)setplayercount:(int)count
- (int)playercount
- (void)initializegame
- (void)makeplay
- (void)endofgame
@end
細節
iOS設計模式之模板模式
模板方法 template method 模式 定義乙個操作中的演算法骨架,而將演算法的一些步驟延遲到子類中,使得子類可以不改變該演算法結構的情況下重定義該演算法的某些特定步驟。它是一種類行為型模式。該模式的主要優點如下。它封裝了不變部分,擴充套件可變部分。它把認為是不變部分的演算法封裝到父類中實現...
IOS設計模式學習(18)模板方法
1 前言 模板方法模式是物件導向軟體設計中一種非常簡單的設計模式。其基本思想是在抽象類的乙個方法定義 標準 演算法。在這個方法中呼叫的基本操作由子類過載予以實現。這個方法成為 模板 因為方法定義的演算法缺少一些特有的操作。2 詳述 2.1 簡述 定義乙個操作中演算法的骨架,而將一些步驟延遲到子類中。...
模板設計模式 設計模式 模板方法模式
在模板模式 template pattern 中,乙個抽象類公開定義了執行它的方法的方式 模板。它的子類可以按需要重寫方法實現,但呼叫將以抽象類中定義的方式進行。這種型別的設計模式屬於行為型模式。首先需要一定抽象的定義,沒有具體的實現,但是在抽象類的行為中,子類去程序這個抽象類,重寫抽象方法,實現不...