组合与聚合

组合与聚合
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;
}

转载于:https://www.cnblogs.com/xulinmei/p/7413676.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值