1 changed files with 30 additions and 0 deletions
@ -0,0 +1,30 @@ |
|||||
|
继承 |
||||
|
优点:代码复用、多态支持、符合“is-a”关系。 |
||||
|
|
||||
|
缺点:紧耦合、灵活性受限、可能破坏封装。 |
||||
|
|
||||
|
组合 |
||||
|
优点:松耦合、动态替换行为、易于测试。 |
||||
|
|
||||
|
缺点:代码量增多、不易直观体现类型层次。 |
||||
|
|
||||
|
在本场景中的选择 |
||||
|
本实验采用继承,因为: |
||||
|
|
||||
|
所有图形共享“计算面积”这一核心行为,且未来扩展新图形只需继承 Shape,无需修改已有代码。 |
||||
|
|
||||
|
继承方案简洁直观,充分利用了多态,便于统一处理。 |
||||
|
|
||||
|
若未来行为变化频繁(如面积算法需动态切换),则可重构为组合模式。当前场景下继承更合适。 |
||||
|
|
||||
|
|
||||
|
实验反思与总结 |
||||
|
多态的价值:通过 ShapeUtil.printArea(Shape shape) 一行代码即可处理所有图形,避免了重复代码,提高了可维护性。 |
||||
|
|
||||
|
抽象类的合理使用:将公共行为提升到抽象类,子类只关注自身实现,符合单一职责原则。 |
||||
|
|
||||
|
设计取舍:在简单场景中继承的简洁性优于组合,但需警惕未来耦合;若需求复杂化,应及时重构。 |
||||
|
|
||||
|
AI 工具助力:Trae 的 AI 辅助功能显著提升了开发效率,尤其在代码生成、文档撰写和理论分析方面,但核心设计仍需人工判断。 |
||||
|
|
||||
|
通过本次实验,加深了对面向对象三大特性(封装、继承、多态)的理解,并初步掌握了利用 AI 工具辅助编程的方法。 |
||||
Loading…
Reference in new issue