【发布时间】:2014-05-18 16:44:28
【问题描述】:
我正在使用 C# 编写具有两个子类的 AbstractTriangle 层次结构:Triangle 和 SpecialTriangle。
三角形是由直线组成的,但 SpecialTriangles 是由 SpecialLines 组成的!
我可以想出多种方法将线存储在三角形中:
- AbstractTriangle 包含一个 AbstractLine 列表
- AbstractTriangle 包含 ILine 列表
- ITTriangle 拥有 ILine 列表的访问器,Triangle 和 SpecialTriangle 负责各自的 Line 或 SpecialLine 列表
处理这些层次结构的正确、最优雅的方式是什么?
我是否需要牺牲返回具体类型线的三角形才能使其正常工作?
【问题讨论】:
标签: c# inheritance interface composition