在MVC中,每个类都应属于View
,Model
或Controller
。 View
和Model
不应该彼此了解。因此,这很糟糕:
@interface Person : NSObject // Clearly a model class
@property (nonatomic) NSString *name;
@property (nonatomic) NSUInteger age;
@end
@interface PersonInfoView : NSView // Clearly a view class
@property (nonatomic) Person *personToDisplay;
@end
相反,您可以从控制器配置PersonInfoView
。所以你可能会有这个PersonInfoView
类:
@interface PersonInfoView : NSView
@property (nonatomic) NSString *nameToDisplay;
@property (nonatomic) NSUInteger ageToDisplay;
@end
但是如你所见,NSString
同时属于模型和视图类!唯一的解释是NSString
是一个控制者,但这根本没有意义。
我的想法是,可能NSString
(以及类似的类)被排除,因为它们几乎充当了原始的C类型?
答案 0 :(得分:2)
不要求所有类都是视图,模型或控制器。事实上大多数都不是。
MVC的重点是模型如何通过控制器与视图交互。
BTW,除了苹果公司选择的版本之外,还有MVC版本。