当一类对象有相同的操作函数,但是各自的实现却不一样。
通常可以为它们定义一个共同基类,再在基类里定义它们都拥有的虚函数。
缺点是当操作函数增加或删减时,就得修改基类以及所用子类。
优点是当子类对象增加时,只需要写新增子类的内容。
使用访问者模式,会把数据与操作分离,也能把一个子类实现的源文件内容缩减,也算是优点。
最重要的优点应该还是,当操作函数增加或删减时,只需要继承访问基类,实现对各个数据子类的操作函数即可。
但是,当数据子类对象增加时,除了写新增子类的内容外,还需要修改访问基类与所有的访问子类。
所以,访问者模式适用于数据子类的种类较少;操作较多,且更新频繁的情景。
相对的,一般的继承多态,适用于操作较少;数据子类较多,且更新频繁的情景。
对照这篇文章可以自行体会一下。
标签:函数,子类,删减,模式,基类,操作,访问者 来源: https://www.cnblogs.com/map1e/p/15547741.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。