在“清洁编码器”第136和137页中,罗伯特·C·马丁( Robert C. Martin )描述了如何通过vtable独立部署芯片:
解决办法很简单。每个芯片都必须与其他芯片分离。每个单位都必须变成一个独立的汇编单位,可以独立于所有其他单位燃烧。所以我测量了应用程序中所有函数的大小,并编写了一个简单的程序,就像拼图游戏一样,放入每个芯片中,留下大约100字节的空间用于扩展。在每个芯片的开头,我放置了一个指向该芯片上所有功能的指针表。在启动时,这些指针被移动到RAM中。系统中的所有代码都被更改,因此函数只能通过这些RAM向量调用,而不是直接调用。是的,你明白了。芯片是物体,带有vtables。所有功能都是多形性部署的。而且,是的,这就是我如何学习OOD的一些原则,早在我知道对象是什么之前。
发布于 2016-07-16 17:30:53
这只是罗伯特·马丁在他的写作中有点花哨。在马丁工作之前,一个简单的改变程序意味着替换所有32个EEPROM芯片。通过使用指向函数的指针,32片芯片中的每个芯片都变得相互独立。这就是所有的意义。
发布于 2017-11-04 21:04:17
他在建议使用多态而不是开关的时候主要使用这个术语,就像这里的https://refactoring.guru/replace-conditional-with-polymorphism
https://softwareengineering.stackexchange.com/questions/325007
复制相似问题