当前位置: 代码迷 >> .NET分析设计 >> 问一个关于面向对象的设计模式的有关问题
  详细解决方案

问一个关于面向对象的设计模式的有关问题

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

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