0

我的突破之类的游戏中有以下模型:

  • 球.h
  • 块.m
  • GamePlay.m
  • 桨.h
  • 桨.m

我也有以下看法:

  • 球视
  • 块视图
  • 桨视图

我的问题是,当我更改模型中的属性时,我也必须更改视图中的属性。例如:

球型:

@interface Ball : NSObject
@property (nonatomic, strong) NSNumber *radius;
@property (nonatomic, strong) NSNumber *xSpeed;
@property (nonatomic, strong) NSNumber *ySpeed;
@property (nonatomic, strong) NSNumber *xDirection;
@property (nonatomic, strong) NSNumber *yDirection;
@property (nonatomic) CGPoint location;
@property (nonatomic, strong) UIColor *color;
@end

球视图:

@interface BallView : UIView
@property (strong, nonatomic) UIColor *color;
@property (nonatomic) int radius;
@end

当模型的属性发生变化时,我有诸如位置或颜色之类的。我必须在视图中更新这些相同的属性。我不应该在我的模型中跟踪位置和颜色吗?

4

1 回答 1

0

我认为 MVC 的要点是随时间推移的可维护性。如果您决定明天需要一个完全不同的游戏视图,模型代码可以保持不变,因此您可以专注于仅修改视图部分。

此外,如果您知道需要一些有关游戏状态的数据,您就知道在哪里可以找到它——在模型中。例如,如果他有兴趣看你打破积木,你可能想通过互联网将球的位置传送给你的朋友。

正如您可能从最后两段中猜到的那样,您确实应该在模型中存储和更新球的位置和颜色。视图不应该是应用程序状态的所有者。

于 2012-07-01T21:51:38.290 回答