日期:2014-05-20  浏览次数:20680 次

问一个关于面向对象的设计模式的问题
现在有一个基类ColliUnit。
ColliUnit有三个子类Rectangle、Circle、Oval。
然后ColliUnit有一个虚方法IsCollide。
IsCollide方法需要两个ColliUnit的子类作为参数。
而Rectangle、Circle、Oval三种子类的两两任意组合的作为参数传递进方法IsCollide的时候,要求根据不同的类型组合跑各自不同的逻辑。
例如,Rectangle与Circle的组合与Rectangle与Oval的组合,两个组合跑的逻辑是不一样的。
有没有什么成熟的设计模式或者说面向对象特性能够不用RTTI加switch case的方式来处理编写根据不同类型组合调度逻辑的代码。
至少让代码的结构看起来好看一点也可以。

------解决方案--------------------
设计模式在这个论坛里
是比较敏感的话题
少谈
少谈