生成器模式——设计模式系列
来源:互联网 发布:四川经济知乎 编辑:程序博客网 时间:2024/04/30 11:55
生成器模式有两个核心概念,一个是Director(指导者)、一个是Builder(生成器)。Builder知道如何在缺少某些特定信息的情况下建造产品,Director知道Builder应该建造什么,以参数向其提供缺少的信息来建造特定产品。生成器关注分步创建复杂对象,在最后一步返回产品。以下以代码进行说明。
//最终产品
@interface Character : NSObject
{
@private
floatprotection_;
floatpower_;
floatstrength_;
floatstamina_;
floatintelligence_;
floatagility_;
floataggressiveness_;
}
@end=================================================================
//父类Builder
@interface CharacterBuilder : NSObject
{
@protected
Character *character_;
}
@property (nonatomic,readonly) Character *character;
- (CharacterBuilder *) buildNewCharacter;
- (CharacterBuilder *) buildStrength:(float) value;
- (CharacterBuilder *) buildStamina:(float) value;
- (CharacterBuilder *) buildIntelligence:(float) value;
- (CharacterBuilder *) buildAgility:(float) value;
- (CharacterBuilder *) buildAggressiveness:(float) value;
@end
=================================================================
//实现类Builder
@interface StandardCharacterBuilder : CharacterBuilder
{
}
// overriden methods from the abstract CharacterBuilder
- (CharacterBuilder *) buildStrength:(float) value;
- (CharacterBuilder *) buildStamina:(float) value;
- (CharacterBuilder *) buildIntelligence:(float) value;
- (CharacterBuilder *) buildAgility:(float) value;
- (CharacterBuilder *) buildAggressiveness:(float) value;
@end
=================================================================
//Director
@interface ChasingGame : NSObject
{
}
- (Character *) createPlayer:(CharacterBuilder *) builder;
- (Character *) createEnemy:(CharacterBuilder *) builder;
@end
=================================================================
//客户端调用代码
- (void)viewDidLoad
{
[superviewDidLoad];
CharacterBuilder *characterBuilder = [[[StandardCharacterBuilderalloc]init] autorelease];
ChasingGame *game = [[[ChasingGamealloc]init] autorelease];
Character *player = [game createPlayer:characterBuilder];
Character *enemy = [game createEnemy:characterBuilder];
// do something else with the
// player and enemey
}
- 生成器模式——设计模式系列
- 生成器模式——设计模式系列
- 生成器模式——设计模式系列
- 设计模式——生成器模式
- 设计模式——生成器模式
- 设计模式——生成器模式
- JAVA设计模式 — 生成器模式(Builder)
- 设计模式 — 生成器模式 (Builder)
- 设计模式 生成器模式
- 设计模式-生成器模式
- 设计模式:生成器模式
- java设计模式学习—生成器(Builder)
- 设计模式读书笔记(四)——生成器模式
- C#设计模式之5——生成器模式
- 深入浅出设计模式(3)——生成器模式(Builder)
- C#设计模式——生成器模式(Builder Pattern)
- 设计模式——生成器模式(Builder Pattern)
- 设计模式——生成器(建造者)模式
- java并发编程-Executor框架
- #pragma pack 使用说明
- 制作软件自动化安装的最简便的方法[By Gooker]
- socket连接池
- android4.0的编译问题
- 生成器模式——设计模式系列
- 常用的学习网站
- 【iOS-Cocos2d游戏开发之八】开启高清(960*640)模式问题与解答、图片适配以及设置iphone横竖屏
- Linux/Unix初步学习001(Linux镜像文件下载、Unix在线学习网址)
- Unity3D 开发优秀技术资源汇总
- 第8周实验报告1-1
- C++内存管理
- linux学习总结
- Regal State Machine