結構型之三-組合模式

weixin_33936401發表於2017-10-09

Composite(組合模式)

將物件組合成樹形結構以表示‘部分-整體’的層次結構。組合模式使得使用者對單個物件和組合物件的使用具有一致性。

VC.m

//當需求中體現部分與整體層次的結構時,以及你希望使用者可以忽略組合物件與單個物件的不同,統一地使用組合結構中的所有物件,接應該考慮使用組合模式了。
HCDConcreteCompany *root = [[HCDConcreteCompany alloc]initWithName:@"總公司"];
[root add:[[HCDHRDepartment alloc]initWithName:@"總公司人力資源部"]];
[root add:[[HCDFinanceDepartment alloc]initWithName:@"總公司財務部"]];

HCDConcreteCompany *comp = [[HCDConcreteCompany alloc]initWithName:@"上海華東分公司"];
[comp add:[[HCDHRDepartment alloc]initWithName:@"上海華東分公司人力資源部"]];
[comp add:[[HCDFinanceDepartment alloc]initWithName:@"上海華東分公司財務部"]];
[root add:comp];

HCDConcreteCompany *comp1 = [[HCDConcreteCompany alloc]initWithName:@"杭州辦事處"];
[comp1 add:[[HCDHRDepartment alloc]initWithName:@"杭州辦事處人力資源部"]];
[comp1 add:[[HCDFinanceDepartment alloc]initWithName:@"杭州辦事處財務部"]];
[root add:comp1];
NSLog(@"結構圖:----------------------------");
[root display];
NSLog(@"職責:---------------------------");
[root lineofDuty];

設計圖

3779225-001d7fa62a47487e.png

相關文章