组合与聚合
组合与聚合
1 、指两个或两个以上类之间的一种关系
2 、是(一个)整体类与(多个)部分类之间的关系
3 、组合是两个(以上)类的强关系,即同生共死,整体类与部分类同时分配、释放存储空间
4、 聚合是两个(以上)类的弱关系,非同生共死,不要求整体类与部分类同时分配、释放存储空间
组合:
一种强关系,同生共死,是“ contains - a ”关系
组合的定义:将部分定义为整体的变量 没有setter getter方法
@interface Button:NSObject
@end
@interface Edit:NSObject
@end
@interface Window:NSObject
{
Button *button;
Edit *edit;
}
@end
-(instancetype)init //对象初始化的时候給部分分配空间
{
if (self = [super init])
{
NSLog(@"窗口被创建了");
_button = [[TRButton alloc] init];
_edit = [[TREdit alloc] init];
}
return self;
}
int main(int argc, const char * argv[]) {
@autoreleasepool {
TRWindow *win = [[TRWindow alloc] init];
}
return 0;
}
聚合:
一种弱关系, 不同生共死, 是“ has - a ”关系
聚合的定义:将部分作为总体的属性(成为单独的类)
@interface Mouse: NSObject
@end
@interface Computer:NSObject
@property Mouse *mouse;
@end
int main(int argc, const char * argv[]) {
@autoreleasepool {
TRMouse *m = [[TRMouse alloc] init];
{
TRComputer *com = [[TRComputer alloc] init];
com.mouse = m;
TRMouse *m1 = [[TRMouse alloc] init];
com.mouse = m1;
}
}
return 0;
}
成功的三大原则:
1、坚持
2、不要脸
3、坚持不要脸