12 - 13 虚函数、多态-template method-observer-composite-Prototype设计模式
1 虚函数和多态
函数前加virtual关键字,就变成虚函数了
数据可以被继承,函数的继承是继承了调用权,子类可以调用父类的函数
1)成员函数的分类:
非虚函数:不希望被重新定义
虚函数:希望被重新定义
纯虚函数:一定要重新定义。
关键动作(serialize())延缓到子类去实现出来,1年以后都行。这个是template method:临时函数模式?

serialize是通过this来调用
3种关系功能最强大的是delegation + 继承
2 委托+继承

1)4个放大镜看同一个文件,存储数据和表现数据之前需要具备什么样的关联性?一个文件有变化,其它都得有变化
有4个相同的observer
2)如上右下角的情况:有3个不同的observer

Subject放真正的数据,里面可以有好几个Observer来观察(见图,有个n),
Subject中有指针数组,也是delegation
attach是个注册功能,放入m_views中的Observer都可以进行观察,还得有个相应的注销功能,这里没有
还有一个通知功能notify(),当4个或3个中的其中一个有变化时,通知其它几个也进行相应变化。
3 Composite设计模式

把Primitive想成文件,Composite想成文件夹,Component是它们的父类,它们总体可以形成一个目录树
Primitive的add是空函数,Composite的add可以添加目录和文件。
4 Prototype设计模式
这个先不看了,视频结束

浙公网安备 33010602011771号