用里氏代换原则来处理动画类的继承问题

前端之家收集整理的这篇文章主要介绍了用里氏代换原则来处理动画类的继承问题前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
1.里氏代换原则的基本原理:父类和子类在使用并没有什么区别,父类可以调用子类中的方法,而你看不出他们之间有什么区别。可以相互的替换,这才是核心的地方
2.设计中要确保父类可以直接调用子类的方法
3.将父类设计成虚类(设计的核心)

4.新建一个父类

@interface SourceView : UIView

- (void)show;

- (void)hide;

@end


#import "SourceView.h"

@implementation SourceView

- (void)show {

}


- (void)hide {


4.1 再建 子类

@interface ChildOneView : SourceView

@end


@H_404_88@ #import "ChildOneView.h"

@implementation ChildOneView

- (void)show {

@H_404_88@ NSLog(@"ChildOneView");

}


- (void)hide {

// todo

}

@end


#import "SourceView.h"

@interface ChildTwoView : SourceView

@end


@H_404_88@ #import "ChildTwoView.h"

@implementation ChildTwoView

- (void)show {

@H_404_88@ NSLog(@"ChildTwoView");

}


- (void)hide {

// todo

}

@end


4.2 调用

#import "ViewController.h"

#import "SourceView.h"

#import "ChildOneView.h"

#import "ChildTwoView.h"


@interface ViewController ()

@end


@implementation ViewController

- (void)viewDidLoad {

[super viewDidLoad];

//要调用子类的方法只要改这个地方就可以了,方便

SourceView *tmpView = [[ChildTwoView alloc] init];//或[[ChildTwoViewalloc]init]

[tmpView show];

}




4.总结:可以用父类调用很多子类的方法
原文链接:https://www.f2er.com/javaschema/284646.html

猜你在找的设计模式相关文章