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设计模式

这个先不看了,视频结束

posted @   妖山鬼店  阅读(23)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
点击右上角即可分享
微信分享提示