设计原则之:OCP/开闭原则

Open Close Principle(开闭原则):

定义:

对使用者修改关闭,对提供者扩展开放。
更通俗的意思:提供者增加新功能使用者不需要修改代码,也就是增加新代码老代码无需改动。

适用范围:

最初设计对类提出的设计原则。但其思想适用范围很广系统和系统,子系统和子系统、模块与模块之间都可应用。

Objective-C 例子:
// 使用
- (void)niceIdea {
  OCPMother *mother = [OCPMother new];
  [mother narrate:[OCPBook new]];
  [mother narrate:[OCPNewspaper new]];
}
妈妈讲故事:
@interface OCPMother : NSObject

- (void)narrate:(id)reader;

@end

@implementation OCPMother

- (void)narrate:(id)reader {
    NSLog(@"Ready reading...");
    NSLog(@"%@",[reader content]);
}

@end
阅读协议:
@protocol OCPReader 
- (NSString *)content;
@end
获取书内容:
@interface OCPBook : NSObject 
@end

@implementation OCPBook
- (NSString *)content {    return @"Read story book...";}
@end
获取报纸内容:
@interface OCPNewspaper : NSObject 
@end

@implementation OCPNewspaper
- (NSString *)content {    return @"Read newspaper....";}
@end

你可能感兴趣的:(设计原则之:OCP/开闭原则)