博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS设计模式 - 模板
阅读量:7110 次
发布时间:2019-06-28

本文共 2063 字,大约阅读时间需要 6 分钟。

iOS设计模式 - 模板

 

原理图

 

说明

定义一个操作中的算法的骨架,而将步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义算法的某些特定步骤。

 

源码

////  GameProtocol.h//  TemplatePattern////  Created by YouXianMing on 15/10/27.//  Copyright © 2015年 ZiPeiYi. All rights reserved.//#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.//  Copyright © 2015年 ZiPeiYi. All rights reserved.//#import 
#import "GameProtocol.h"@interface Monopoly : NSObject
@end
////  Monopoly.m//  TemplatePattern////  Created by YouXianMing on 15/10/27.//  Copyright © 2015年 ZiPeiYi. All rights reserved.//#import "Monopoly.h"@interface Monopoly ()@property (nonatomic, assign) int gamePlayerCount;@end@implementation Monopoly- (void)setPlayerCount:(int)count {    self.gamePlayerCount = count;}- (int)playerCount {        return self.gamePlayerCount;}- (void)initializeGame {    NSLog(@"Monopoly initialize");}- (void)makePlay {    NSLog(@"Monopoly makePlay");}- (void)endOfGame {    NSLog(@"Monopoly endOfGame");}@end
////  Chess.h//  TemplatePattern////  Created by YouXianMing on 15/10/27.//  Copyright © 2015年 ZiPeiYi. All rights reserved.//#import 
#import "GameProtocol.h"@interface Chess : NSObject
@end
////  Chess.m//  TemplatePattern////  Created by YouXianMing on 15/10/27.//  Copyright © 2015年 ZiPeiYi. All rights reserved.//#import "Chess.h"@interface Chess ()@property (nonatomic, assign) int gamePlayerCount;@end@implementation Chess- (void)setPlayerCount:(int)count {        self.gamePlayerCount = count;}- (int)playerCount {        return self.gamePlayerCount;}- (void)initializeGame {        NSLog(@"Chess initialize");}- (void)makePlay {        NSLog(@"Chess makePlay");}- (void)endOfGame {        NSLog(@"Chess endOfGame");}@end

 

细节

 

转载地址:http://svlhl.baihongyu.com/

你可能感兴趣的文章
Redis主从配置详细过程
查看>>
Swift和Objective-C混编注意
查看>>
沈阳赛区总结
查看>>
自然语言1_介绍和安装
查看>>
Lind.DDD.LindMQ的一些想法
查看>>
git: windows git ssh keys生成
查看>>
转: 系统分布式情况下最终一致性方案梳理
查看>>
Webpack学习笔记一:What is webpack
查看>>
判断一个变量的类型Object.prototype.toString.call
查看>>
linux磁盘空间查询
查看>>
windows中使用Findwindow函数与FindWindowEx函数来实现自动控制、触发第三方软件事件的方法...
查看>>
金额大小写转换(3)
查看>>
浏览器的同源策略和跨域问题
查看>>
SQL SERVER 触发器介绍
查看>>
美国国有企业
查看>>
推送的通知和自定义消息区别
查看>>
c# 解析JSON的几种办法
查看>>
autofs自动挂载
查看>>
JavaWeb学习笔记——过滤器
查看>>
互联网创业原则与创业模式attilax大总结
查看>>